사용자가 이미 MongoDB에 있는지 여부를 반환하려고합니다. console.log
을 collection.find()
범위 내에서 실행하면 정확한 양 (0보다 큼)이 인쇄됩니다. 그러나 userExists
이 호출되면 항상 false
(0)을 반환합니다.내부 함수가 완료되기 전에 Nodejs 함수가 반환됩니다.
어떻게 값을 반환하기 전에 이러한 함수가 완료 될 때까지 기다릴 수 있습니까? jQuery의 $.Deffered()
에 대해 읽었습니다.하지만이 점이 나에게 더러움을 느끼며 작동하지 않았습니다.
function userExists(db, uid){
var collection = db.get('users');
var ret = 0;
collection.find({"uid":uid},{},function(e,docs){
ret = docs.length
});
return ret > 0?true:false;
}
중복 가능성 [Ajax 호출의 응답을 반환하는 방법?] (http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax- 전화) – vkurchatkin