将变量设置为猫鼬查找的结果 [英] Set Variable to result of Mongoose Find

查看:75
本文介绍了将变量设置为猫鼬查找的结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试做这样的事情

I'm trying to do something like this

    function retrieveUser(uname) {
      var user = User.find({uname: uname}, function(err, users) {
        if(err)
          console.log(err);
          return null;
        else
          return users[0];
      return user;

但是这将返回一个文档而不是用户对象.参数users是与查询匹配的用户对象的数组,那么如何将其中一个对象存储到函数可以返回的变量中?

But this returns a document instead of a user object. The parameter users is an array of user objects matching the query, so how would I store one of the objects into a variable that my function could return?

推荐答案

函数User.find()是异步函数,因此您不能使用返回值来获取结果值.而是使用回调:

The function User.find() is an asynchronous function, so you can't use a return value to get a resultant value. Instead, use a callback:

function retrieveUser(uname, callback) {
  User.find({uname: uname}, function(err, users) {
    if (err) {
      callback(err, null);
    } else {
      callback(null, users[0]);
    }
  });
};

该函数将按以下方式使用:

The function would then be used like this:

retrieveUser(uname, function(err, user) {
  if (err) {
    console.log(err);
  }

  // do something with user
});

这篇关于将变量设置为猫鼬查找的结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆