gpt4 book ai didi

javascript - NodeJS - 如何让生成的 child 与 parent 沟通?

转载 作者:数据小太阳 更新时间:2023-10-29 04:11:40 28 4
gpt4 key购买 nike

我正在尝试这个:

var child = spawn('node', args, {cwd: parentDir, stdio: 'ipc'} );

(args是一个参数数组)

但它给出了以下错误:

TypeError: Incorrect value of stdio option: ipc

这确实有效,所以问题似乎确实出在 stdio ipc 参数上:

var child = spawn('node', args, {cwd: parentDir} );

这也有效:

 var child = spawn('node', args, {cwd: parentDir, stdio: 'pipe'} );

我读到这个:http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options但我看不出哪里错了。这是我第一次尝试使用此 NodeJS 功能,如果问题很明显,我深表歉意。

也许还有其他方法可以解决这个问题。 child 必须生成而不是 fork ,我只是希望能够将消息从 child 发送到 parent 。

谢谢!!

编辑:我有 Node v0.8.18。我在版本历史中搜索了 IPC http://nodejs.org/changelog.html搜索词“IPC”没有任何内容让我觉得我需要更新版本的 NodeJS。

最佳答案

这是一个完整的例子,与其他答案略有不同:

parent.js

spawn('node', ['child.js'], {
stdio: ['inherit', 'inherit', 'inherit', 'ipc'],
}).on('message', function(data) {
console.log(data);
});
  • child 与 parent 共享相同的cwd
  • inherit 用于与 child 共享相同的流(如 stdout),例如,您可以在控制台中看到内容。

child.js

process.send && process.send('hello parent');
  • 如果您要直接使用相同的代码,该函数将不可用(它将是undefined),因此您需要先检查。

关于javascript - NodeJS - 如何让生成的 child 与 parent 沟通?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21343347/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com