使用node的child_process模块的fork函数可以在父进程和子进程之间建立一个IPC管道,用于父子进程之间的通信。
main.js
var childProcess = require('child_process'); var main = childProcess.fork('./son.js'); var data = { a:'12', b:'34' } main.on('message', function(msg) { console.log('父进程监听到: ', msg); }); console.log(data); console.log('发给子进程...'); main.send(data);
son.js
process.on('message', function(msg) { console.log('子进程监听到:'); console.log(msg); msg.a = msg.a + '来自子进程'; console.log('发回父进程...'); process.send(msg); process.exit(); });
如果不使用process.exit()那么在运行完子进程之后不会自动结束,如果父进程是可以继续输入数据的话,可以一直处理数据并返回结果。