我在为 node.js 中的子进程捕获事件时遇到问题。该过程正确运行,并在完成后退出,所以一切都很好。标准输出也正确地管道,所以我可以看到输出很好。不幸的是,我的任何事件处理程序都没有触发,这使我很难在该过程完成后运行我的回调。我的代码如下:
var child = child_process.spawn('node',
['processor', reportId.toString()],
{ cwd:cwd, stdio:'pipe', env:env });
child.on('data', function(data) {
console.log('Received data...');
console.log(data.toString('utf8'));
});
child.on('message', function(message) {
console.log('Received message...');
console.log(message);
});
child.on('close', function(code) {
console.log('Child process closed');
});
child.on('disconnect', function(code) {
console.log('Child process disconnected');
callback();
});
child.on('exit', function(code) {
console.log('Child exited with code ' + code);
callback();
});
child.stderr.pipe(process.stderr, { end:true });
child.stdout.pipe(process.stdout, { end:true });
我确定我做错了什么,但似乎没有任何文档提供关于问题可能是什么的线索。有任何想法吗?
我在 Windows 上运行节点 0.10.8。