node.js没有使用child_process与child进行交互

node.js no interaction with child using child_process

本文关键字:child process 交互 node js      更新时间:2024-04-08

全部,

尝试使用node.js隔离其他人通过node.js中的child_processneneneba API创建的js插件。我无法让子进程与父进程交互,运行此代码时没有错误,但客户端无法发送或接收消息,也无法写入console.log,所以我认为js没有运行。我确实从父级和客户端都收到了调试器正在运行的控制台消息。代码基本上是直接从node.js API文档中获取的,所以我不确定为什么这不会起作用。也许是Windows环境出了问题?

父代码:

var fork = require('child_process').fork;
console.log('Starting plugin server...');
var myChild = fork('client.js');
myChild.on('message', function (msg) {
    console.log('PARENT got message:', msg)
});
myChild.send({ hello: 'world' });

client.js:

console.log("child");
process.on('message', function (msg) {
    console.log('CHILD got message:', msg)
    process.send({msg: 'Message receivd & resent from the child.'})
});
process.send({msg: 'Message from the child.'});

输出:

debugger listening on port 5858
Starting plugin server...
debugger listening on port 5858

我使用的是Windows8.1,visualstudio2013pro和node.js插件的新工具。

感谢任何指点。我是node.js的新手,所以可能犯了一个愚蠢的错误??

我在windows机器上使用fork()时遇到问题。解决方案/解决方法是使用静默模式和日志记录。这是链接https://github.com/rogerwang/node-webkit/issues/1516