在节点JS中,我只是想编写一些外部方法,它从mongodb中检索数据并返回它。在此我使用MongoClient.js
模块与mongodb
进行交互。但问题是调用外部方法时,它在数据库连接方法完成执行之前返回值。在这里,我只想保留我的回复声明,直到mongodb.connect
方法完成。该怎么办? 这里我的代码如下,Node.js使用mongoclient连接mongodb
service.js
var employee = require('./model/employeeService.js');
var json = employee.getUser(employeeId);
哪里的EmployeeService作为模型与数据库进行交互,将数据返回到service.js在那里我们的Web服务的书面和它响应用户。
employeeService.js
exports.getUser = function(employeeId) {
var json = [];
MongoClient.connect(db.getdbUrl(),function(err,db){
if(err) {
json = err;
}else {
document = (employeeId)?{_id:employeeId}:{};
db.collection('Employee').find(document).limit(50).toArray(function(err,users){
if(err) {
json = err;
}
else {
console.log("Inside MongoClient"); // this will executes second
json = users;
}
});
}
});
console.log("OutSide",json); // this executes first
return json;
}
在这里我可以从service.js调用它找到我的输出控制台和越来越空阵列连接MongoClient.connect法的异步执行流程。
结果控制台
OutSide []
Inside MongoClient