如何将查询结果分配给对象

时间:2014-06-27 14:14:07

标签: node.js mongodb sails.js node-mongodb-native

我正在尝试将结果数据从查询功能传输到对象。 console.log(results)行返回'undefined'结果。我该怎么办?

module.exports = {

    show: function(req, res) {

        var results;
        User.native(function(err, User) {

            if(err) {                    
                console.log("There is no exist a User by _id");
            }

            User.findOne({'_id' : req.param('id')}, 
                    function(err, user) {
                      results = user;
            });

        });

        console.log(results);
        return res.view({ stuff : results });
    }
};

1 个答案:

答案 0 :(得分:1)

您有一个异步问题,来自findOne的回调不一定与其余代码一致执行,因此您可以在调用console.log(results)之前到达results = user。您想将其更改为以下内容:

show: function(req, res) {

    var results;
    User.native(function(err, User) {

        if(err) {                    
            console.log("There is no exist a User by _id");
        }

        User.findOne({'_id' : req.param('id')}, 
                function(err, user) {
                  results = user;

                 console.log(results);
                 // Send response or make a callback here
        });

    });
}