在節點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