Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Buildstops不使用节点js中的exec创建文件_Node.js_Sphinx - Fatal编程技术网

Node.js Buildstops不使用节点js中的exec创建文件

Node.js Buildstops不使用节点js中的exec创建文件,node.js,sphinx,Node.js,Sphinx,我正在运行两个命令 indexer idx_name --rotate indexer idx_name --buildstops dict_file 10 当我从命令行运行这些命令时,一切都很好。但是,当我使用exec通过我的节点应用程序传递这两个命令时,第一个命令成功工作,第二个命令没有生成dict_文件 我尝试了一些与sudo的组合,但没有效果。我从这两种方式(节点和shell)检查了标准输出,结果看起来是一样的 以下是我的节点js代码: var exec = require('chil

我正在运行两个命令

indexer idx_name --rotate
indexer idx_name --buildstops dict_file 10
当我从命令行运行这些命令时,一切都很好。但是,当我使用exec通过我的节点应用程序传递这两个命令时,第一个命令成功工作,第二个命令没有生成dict_文件

我尝试了一些与sudo的组合,但没有效果。我从这两种方式(节点和shell)检查了标准输出,结果看起来是一样的

以下是我的节点js代码:

var exec = require('child_process').exec;
var cmd = 'indexer idx_name --rotate && indexer idx_name --buildstops dict_file 10';
exec(cmd, function(err, stdout, stderr) {
   console.log(stdout);
});

我缺少什么吗?

哪个用户正在运行节点,将需要权限才能写入
dict\u文件

甚至可能会发现删除文件更容易,并让正确的用户通过节点创建文件(假设用户可以写入文件夹)

Sudo也可以工作,但需要确保运行节点的用户具有Sudo权限。明确不属于stackoverflow职权范围的分拣


。。。一定要检查你是否在正确的地方。在您的示例中,您没有显示路径,因此文件
dict_file
将仅在当前工作目录中创建(不确定节点如何配置)

谢谢barry,我看错了位置。将路径与dict_文件一起传递可以解决此问题