拥有fork('./MyProcess.js',['foo']);
在主进程和console.log(process.argv[2]);
在 fork 进程中将 foo 记录到我的控制台。
然而,fork('./MyProcess.js',[{myProp : 'bar'}]);
在主进程和console.log(process.argv[2]); console.log(process.argv[2].myProp);
在 fork 进程中将记录 [object Object](如预期的那样),但第二个日志为 undefined。
这是为什么,我应该怎么做才能获得所需的行为?
最佳答案
通过命令行参数将对象 (json) 传递给子进程不是一个好主意,命令参数需要先转义(不容易)。你有一些选择:
- 对 json 进行十六进制编码,然后传递给子进程,这可行,但您的子进程接口(interface)很糟糕。
- 将 json 保存到文件,传递文件路径。
- 通过 stdin 将 json 传递给子进程。
- 将 json 作为消息发送给子进程,参见 https://nodejs.org/api/child_process.html#child_process_child_send_message_sendhandle_options_callback
关于node.js - 将对象作为参数发送到 fork 的 nodejs 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37300556/