0

我将我的任务拆分为多个节点脚本,“节点程序”将在其他节点应用程序中使用节点的子进程功能单独运行node program1.jsnode program2.js等等。exec

这样事情就分开了,我可以在多个其他应用程序中重用一个程序。

从这样的节点程序中获取数据很容易,您只需将任何您想要的数据扔到标准输出并exec在另一端捕获它。

要将数据放入节点程序,如何?如果数据只是简单的命令行参数,这很容易,但是我如何将任意数据(二进制、JSON 等)放入其中(在或接近我要调用的位置exec)?也许一些管道?示例代码我将不胜感激。

4

1 回答 1

1

使用该env属性将环境变量传递给衍生的子进程。您可以在 中执行此操作exec(),但对于生成 Node 进程,最好使用fork(),因为它会创建 V8 的新实例,这就是您正在执行的操作。

这是您传递环境变量的方式:

var exec = require('exec');
var child = exec(command, {
  env: {
    buffer: new Buffer(8),
    json: JSON.stringify(json),
    string: 'a simple string'
  }
}, function(error, stdout, stderr) {
  // execution callback
});

这就是您在子进程中使用变量的方式:

process.env.buffer
process.env.json
process.env.string
于 2013-09-26T22:13:05.917 回答