1

我正在尝试让我的 node.js 服务器在启动时启动。如果我在我的服务器文件夹中并输入:

node server.js

它运行良好并启动位于同一文件夹中的 python 脚本。

但是,如果我从该目录外部或从初始化脚本运行它,如下所示:

node /home/servers/server.js

它启动并接收呼叫,但没有按预期运行 python 脚本。

有谁知道发生了什么以及我该如何解决?谢谢。

4

2 回答 2

2

当您运行时node,它会引用来自目录节点的所有文件系统调用而不是其中的目录app.js,因此如果您尝试这样做require('./myfile')myfile.js则需要在您正在运行的目录node中。

从不同的目录运行这个简单的脚本以查看它的运行情况(它运行,从这里ls精心复制):

var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec("ls -la", puts);

至于您的 Python 问题,您应该开发一个经验位置来调用app.js,并在定位脚本时使用它。

于 2013-02-20T00:06:47.890 回答
0

您还可以更改目录以确保您在需要的位置。只需在文件顶部添加如下内容:

__dirname指向包含当前文件的目录。对于这个例子,我将假设以下 repo 结构:

repo/
    src/
        index.js
    package.json

在 index.js 里面我会放:

const path = require('path');

process.chdir(path.join(__dirname));
于 2021-02-19T07:59:40.000 回答