我将我的任务分成多个节点脚本,“节点程序”将使用其他Node应用程序中的Node的子进程node program1.js
函数与node program2.js
,exec
等单独运行
这样事情就分崩离析了,我可以在多个其他应用中重复使用一个程序。
很容易从这样的节点程序中获取数据,你只需抛出你想要的任何数据stdout并让exec
在另一端捕获它。
将数据放入节点程序中,如何?如果数据只是简单的命令行参数,这很容易,但是我如何将任意数据(二进制,JSON,等等)放入其中(在我称之为exec
的位置或其附近)?也许有些管道?示例代码我很感激。
答案 0 :(得分: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