NodeJS child_process.execFile()总是返回Unknown system errno 193
简单地说,我不能使用child_process.execFile()。 它总是包含callback错误。
child.js
console.log('I\'m child');
main.js
var cp = require('child_process'); cp.execFile('./child.js', function (err, stdout,stderr) { console.log('Err: ',err); console.log('STDerr: ',stderr); });
callback中的错误对象是
{ [Error: spawn Unknown system errno 193] code: 'Unknown system errno 193', errno: 'Unknown system errno 193', syscall: 'spawn' }
问题是,child.js不是一个有效的可执行程序。 如果你在Linux或Mac上,你可以通过在child.js最上面写这个来解决这个问题:
#!/usr/bin/env node
然后您将需要说chmod +x child.js
使文件可执行。 该行被称为“shebang行”,它告诉系统使用什么解释器来运行文件的其余部分。 你需要在$ PATH中有节点才能工作。
如果你不喜欢,或者不使用类Unix系统,你可以这样做:
cp.execFile('/some/path/to/node', ['./child.js'])
第一个参数必须是你的节点解释器程序的完整path(也许在Windows上的node.exe,我不知道这是否重要)。
最后,如果你真的不需要启动第二个节点解释器进程,这些都不会有什么意义。 您可以尝试在另一个文件中包含一个文件 – 这里有一些想法: 如何在另一个JavaScript文件中包含JavaScript文件?