繁体   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