2017-04-19 5 views
0

ここでは、ノードjで計算を行うためにforkメソッドを使用しています。私はlinkの答えに続いています。期待通りに働き、計算を始めました。mongo dbから詳細をフェッチしてnodejsのオブジェクトに送信または格納する方法Forkメソッド

ここで、子ファイルのmongodbから詳細を取得できます。mongooseをmongodbに使用しています。私のサンプルコードでは、私は、コンソールですべての結果を得ていないのです。ここ

var User = require('../models/User'); //mongoose schema 
    var users= {}; 
    User.find({}, function (err, docs) { 
    debugger; 
    users = docs;   
    //process.send(users);    //Changed as in edit 
    }); 

main.js

var childprocess = require('child_process'); 
    var child = childprocess .fork(__dirname + '/childpage'); 
    child.on('message', function(m) { 
    // Receive results from child process 
    console.log('received: ' + m); 
    }); 

childpageを下回っています。 mongoDBから子ページの詳細を取得し、それを1つのオブジェクトに格納するのに役立つことができます。コンソール

EDIT に表示するmainjsにそれらを送って、私はそれがコンソールで受信方法をprocess.onするprocess.sendラインを変更したが、object.Evenように私はまたJSON.stringify(docs);同じ結果と試みました。

コンソール
、IN
process.on('message', function(m) { 
     process.send(users); 
    }); 

received: [object object] 

マングーススキーマ

const mongoose = require('mongoose'); 
const userSchema = new mongoose.Schema({ 
    FirstName: String, 
    LastName: String, 
    Email: { type: String, unique: true } 

}, { versionKey: false }); 
+0

:この結果main.js私にとって

var childprocess = require('child_process'); var child = childprocess.fork(__dirname + '/child'); child.on('message', function(m) { // Receive results from child process console.log('received: ', m); }); 
child.jsで

var User = require('../models/User'); var users= {}; User.find({}, function (err, docs) { // Please add log in this line to check whether their is anything in database console.log(docs); debugger; users = docs; process.send(users); }); 

:これを試してみてください子プロセス側のdb? –

+0

@JohannesMerzいいえ、私は受け取っていませんでしたが、通常のプロセスで使用しているときにそのクエリが正常に動作しています –

+0

あなたのマングース設定ではっきりとsthですが、子プロセスのDBに正しく接続していますか? –

答えて

0

このコードスニペットは、私のために完璧に動作します。あなたから任意のユーザーを受け取るん

enter image description here

+0

お返事ありがとうございます。私は試してみましたが、私は 'received:'でchild.jsだけを受け取っています。query process.sendの中にコンソールが表示されていません。 –

+0

@charantej 'child_process'には何の問題もありません。あなたのマングースモデルと接続のコードを提供できますか? – Tolsee

+0

データベースには文書がありますか?私があなたを保証できるのは、あなたがここに示した通り、あなたのコードに問題はないということです。他の隠された問題かもしれない。私のマシン上でコードが完全に実行されているからです。また、ノードのバージョンについても言及してください。 – Tolsee

関連する問題