.fork() を使用すると、完全に別のプロセスが起動されるため、親プロセスと子プロセスの間で参照を渡すことができません (プロセスが作成された後のメッセージングに限定されます)。
メッセージングを必要としないアプローチは、プロセスを fork するときに (配列で) 引数を渡すことです。単純な文字列/数値に固執する必要があると思いますが(ただし、コードからはこれで十分なようです)。例えば。:
トップレベル:
var name = 'bob'
var args = [name];
var childProcess = require('child_process').fork(__dirname + '/worker', args);
ワーカー プロセスで:
var name = process.argv[2]; //AFIAK elements 0 and 1 are already populated with env info
アップデート
本当にメッセージ ルートに行きたい場合 (既にメッセージを送信する必要がある場合はお勧めしません)、メッセージの種類を次のように区別できます (もっと洗練された方法があるかもしれません)。
トップレベル:
var childProcess = require('child_process').fork(__dirname + '/worker');
childProcess.send({msgtype:'dependencies', content:dependencies});
//Then to send 'normal' message:
childProcess.send({msgtype:'myothermessagetype', content:'some content'}
ワーカー プロセス内:
process.on('message', function(msg){
if(msg.mtype == 'dependencies') {
var dependencies = msg.content;
//Do something with dependencies
} else if(msg.mtype == 'myothermessagetype') {
var normalmessage = msg.content;
//Do something in response to normal message.
}
});