[英]Node js Mongodb collection.find() query result outside scope
我在queryfunctin之外希望collection.find()查詢結果
var fol;
Folder
.find({'parentid':id,'stats.archive':'0'})
.lean()
.exec(function(err, f_folder) {
if(!err) {
fol = f_folder;
}
});
console.log(fol); // I want query result here
請給我解決方案,為什么查詢不會在函數外部返回結果
在傳遞給exec()
的回調之外調用的console.log()
將在exec()
函數返回之前exec()
。
正如@VsevolodGoloviznin所說,您需要做的是在回調內部調用console.log()
,例如:
Folder
.find({'parentid':id,'stats.archive':'0'})
.lean()
.exec(function(err, f_folder) {
if(!err) {
fol = f_folder;
console.log(fol);
}
});
這將確保您的fol
var不會被undefined
。
您還可以做的是將邏輯包裝在函數內部:
function findFolder(callback) {
Folder
.find({'parentid':id,'stats.archive':'0'})
.lean()
.exec(function(err, f_folder) {
if(!err) {
fol = f_folder;
callback(fol);
}
});
}
function logResult(result) {
console.log(result);
}
findFolder(logResult);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.