Node.js 如何在nodejs Fork方法中从mongodb获取细节并发送或存储在object中

Node.js 如何在nodejs Fork方法中从mongodb获取细节并发送或存储在object中,node.js,mongodb,express,mongoose,child-process,Node.js,Mongodb,Express,Mongoose,Child Process,这里我使用fork方法在NodeJS中进行一些计算。我已经在中找到了答案。它按照预期工作,并已开始进行计算 在这里,我如何从子文件中的mongodb中获取详细信息。我正在使用mongoose进行mongodb。下面是我的示例代码 main.js var childprocess = require('child_process'); var child = childprocess .fork(__dirname + '/childpage'); child.on('me

这里我使用fork方法在NodeJS中进行一些计算。我已经在中找到了答案。它按照预期工作,并已开始进行计算

在这里,我如何从子文件中的mongodb中获取详细信息。我正在使用mongoose进行mongodb。下面是我的示例代码

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);
   });
子页面

   var User = require('../models/User');   //mongoose schema
   var users= {};
   User.find({}, function (err, docs) {
    debugger;
   users = docs;          
   //process.send(users );               //Changed as in edit
    });
received: [object object]
在这里,我在控制台中没有得到任何结果。任何人都可以帮助我从mongoDB获取子页面中的详细信息,并将其存储在一个对象中。将它们发送到mainjs以在控制台中显示

编辑 我已经将process.send行更改为process.on方法,然后将其作为对象在控制台中接收也是,但结果相同

 process.on('message', function(m) {
      process.send(users);
     });
在控制台中

   var User = require('../models/User');   //mongoose schema
   var users= {};
   User.find({}, function (err, docs) {
    debugger;
   users = docs;          
   //process.send(users );               //Changed as in edit
    });
received: [object object]
猫鼬模式

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

}, { versionKey: false });

这个代码片段对我来说非常适合。请试试这个:

在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的任何用户?@JohannesMerz不,我没有收到,但当我在正常进程中使用该查询时,它正在使用您的mongoose设置工作,您是否正确连接到子进程中的db?@JohannesMerz连接正在工作。现在我收到的只是实物。请查看已编辑的问题。请尝试
console.log(“received”,m)
记录结果。感谢您的回答。我试过了,但我只收到了
received:
在child.js的内部查询进程中。发送和控制台没有显示。@charantej看来您在
child\u进程中没有任何问题。你能为你的猫鼬模型和连接提供代码吗?你的数据库有任何文档吗?我可以向您保证的是,根据您在这里展示的内容,您的代码中没有问题。可能还有其他隐藏的问题。因为代码在我的机器上运行得很好。并提及您的节点版本。这里有文档。我观察到,每当我在编写process.send-inside-mongoose查询时,它都不会向main.js发送任何内容,因为即使
received
也不会显示在控制台中,如果我在控制台外部写入,它也会显示我初始化为
{}的内容
您是否可以更新整个文件(如mongoose connection)以及此示例项目中的所有剩余代码或文件,因为您需要与我的项目一起检查。