我是节点应用程序,我使用了child_process。 exec api工作正常,问题是有maxBuffer事情我们遇到了麻烦因此我想改变它以使用产卵
之前的代码就好了(这段代码工作得很好我只需要传递cmd和选项,而且它正在完成工作......)
var child = child_process.exec(cmd,options, function (error) {
....
});
现在我已将其更改为spawn并且无法正常工作
var child = child_process.spawn(cmd, options);
child.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
child.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
这里我遇到了错误
Error: spawn ENOENT
at errnoException (child_process.js:988:11)
at Process.ChildProcess._handle.onexit (child_process.js:779:34)
stderr: execvp(): No such file or directory
任何想法我在这里缺少什么?
答案 0 :(得分:1)
使用spawn启动子进程时,需要将命令与args分开。
如果你有:
child_process.exec('somecmd somearg somearg2', options, function() {...});
您现在需要:
child_process.spawn('somecmd', ['somearg', 'somearg2'], options);
如果没有要使用的参数,则传递一个空数组:
child_process.spawn('somecmd', [], options);