【问题标题】:Local node process running in wrong directory本地节点进程在错误目录中运行
【发布时间】:2016-01-20 16:34:54
【问题描述】:

我正在使用 PHP Storm 9 在我的本地开发环境上运行节点实例。但该进程似乎在 server.js 父目录中运行。

我的文件夹结构是这样的

app/
  app_server/
    server.js
    user_resources/
  user_resources/

当我在本地实例中写入文件以将 user_resources 写入 app/ 时,当我在实时环境中运行相同的进程时,它会写入 app_server/ 中的 user_resources

pdf.create(html, options).toFile(path+filename, function (err, reuslt) {
  callback();
});

使用 fs writeFile、readFile 或 readdir 会产生类似的行为

本地节点服务器我用 PHPstorm 运行,实时服务器永远运行

local和live都是ubuntu系统。

关于为什么本地节点似乎在 server.js 父目录中运行的任何建议。

【问题讨论】:

  • 您确定该过程是从生产和本地的同一目录启动的吗?问是因为cd app/app_server; node server.jscd app; node app_server/server.js 有很大的不同。
  • 不是本地用户,我通过 phpstorm 调试器直接在 phpstorm 中启动它来运行它。现场我使用 cd app/app_server;永远启动 server.js

标签: node.js


【解决方案1】:

节点服务器可能由 PHPStorm 从app 目录执行,而实时进程从app/app_server 运行。

如果服务器代码中没有提供其他关于将user_resources 放置在何处的提示,它将驻留在当前工作目录中(这是涉及节点进程的路径)。

您可能想要指定相对于server.js 位置的路径,这可以像这样轻松完成:

var userResourcePath = __dirname + '/user_resources`;

节点始终确保将__dirname 设置为其所在文件的路径。

我假设您的实时环境 (app/app_server/user_resources) 的 user_resources 路径是您想要用于本地开发的路径。

【讨论】:

    猜你喜欢
    • 2022-09-27
    • 1970-01-01
    • 2021-06-17
    • 2021-11-28
    • 2021-05-08
    • 2014-01-08
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    相关资源
    最近更新 更多