簡體   English   中英

Node JS Mongodb collection.find()查詢結果超出范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM