そのため、Node.js でプロジェクトに取り組んでおり、処理負荷をより効率的に処理するためにいくつかの追加スレッドを開きたいと考えています。しかし、関数定義を持つクラスを使用しています。これらのオブジェクトをワーカー スレッドに送信しようとすると、オブジェクトで定義された関数が消え、オブジェクト内の他のフィールドだけが残ります。ワーカーにオブジェクトを送信し、ワーカー内で呼び出せるように関数を保持する方法はありますか?
var cluster = require('cluster');
if(cluster.isMaster){
Monster = function(species){
this.attack = function(){
console.log('CHOMP');
};
this.name = species;
};
var vamp = new Monster('vampire'),
worker = cluster.fork();
worker.send({'monster' : vamp});
}
else{
process.on('message', function(msg) {
console.log(msg.monster); //this logs "{ name: 'vampire' }"
msg.monster.attack(); //TypeError: Object #<Object> has no method 'attack'
});
}