大家好:我想我得到了答案。它在其他操作系统上不起作用的原因是我的配置。
我在MacOS和linux中使用node.js v0.10.12时遇到了这个错误,这段代码在windows7中运行良好。唯一的区别是在Windows7上我有管理员id,在MacOSX和linux上,我不是root用户,只是计划用户。
我们需要成为root用户才能处理child_process吗?关于为什么它在某些操作系统上失败而不是全部失败,有什么线索吗?非常感谢
这是代码:
var spawn = require('child_process').spawn;
try {
var child = spawn('node', ['plusone.js']);
//call every minute
setInterval(function() {
//
var number = Math.floor(Math.random() * 10000);
child.stdin.write(number +'n');
child.stdout.once('data', function(data) {
console.log('child replied to '+ number +' with ' +data);
});
},1500);
child.stderr.on('data', function(data) {
process.stdout.write(data);
});
} catch (e)
{
console.log("entering catch block");
console.log(e);
}
如果未在系统路径上配置节点,则除非指定了路径,否则可以在任何地方访问该节点。