JS 노드에서 mongodb에서 데이터를 검색하여 반환하는 외부 메서드를 작성하려고합니다. 나는 mongodb
과 상호 작용하기 위해 MongoClient.js
모듈을 사용했다. 그러나 문제는 외부 메서드를 호출 할 때 데이터베이스 연결 메서드가 실행을 완료하기 전에 값을 반환한다는 것입니다. 여기서 나는 mongodb.connect
방법이 완료 될 때까지 나의 반환 계산서를 보전하고 싶다. 어떻게해야할까요? 여기 내 코드는Node.js mongoclient를 사용하는 mongodb 연결
service.js employeeService 데이터베이스와 상호 작용하고 웹 서비스를 작성하고 사용자에게 응답하는 경우 service.js로 데이터를 반환하는 모델 역할을
var employee = require('./model/employeeService.js');
var json = employee.getUser(employeeId);
, 다음과 같습니다.
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