将对象作为参数发送到分叉的 nodejs 进程

Jon*_*nah 4 node.js

拥有fork('./MyProcess.js',['foo']);的主要工序,并console.log(process.argv[2]);在派生进程将记录FOO我的控制台。

但是,fork('./MyProcess.js',[{myProp : 'bar'}]);在主进程和console.log(process.argv[2]); console.log(process.argv[2].myProp);分叉进程中将记录[object Object](如预期)但未定义为第二个日志。

为什么会这样,我应该怎么做才能获得所需的行为?

tan*_*nfa 6

通过命令行参数将对象(json)传递给子进程不是一个好主意,命令参数首先需要转义(不容易)。你有一些选择:

  1. 十六进制编码json然后传递给子进程,这有效,但你的子进程接口不好。
  2. 将 json 保存到文件中,改为传递文件路径。
  3. 通过标准输入将 json 传递给子进程。
  4. 将 json 作为消息发送到子进程,请参阅https://nodejs.org/api/child_process.html#child_process_child_send_message_sendhandle_options_callback