将代码从subprocessexec更改为产生

我有节点的应用程序,我使用child_process。 工作好的exec api,问题是有maxBuffer我们有麻烦的事情,因此我想改变它与产卵工作

以前的代码是(这段代码工作正常,我只需要通过cmd和选项,它正在做这个工作…)

var child = child_process.exec(cmd,options, function (error) { .... }); 

现在我改变它产卵,它不工作

  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 

任何想法我在这里错过了什么?

当用spawn启动subprocess时,需要将命令与args分开。

如果你有:

 child_process.exec('somecmd somearg somearg2', options, function() {...}); 

你现在需要:

 child_process.spawn('somecmd', ['somearg', 'somearg2'], options); 

如果没有使用参数,则传递一个空数组:

 child_process.spawn('somecmd', [], options);