如何使用从mongodb返回的数据而不是返回它

时间:2016-04-15 12:48:40

标签: node.js mongodb api

在我通过api返回之前,我想要处理从我的mongodb中搜索过的数据。

我的api请求是这样的:

.get('/users', function(req, res){
    var users = [];
    User.find({}, function(err, data){
        if(err) res.send(err);
        users = data;
    }

    // here I want to do some things with the users

    res.json(users);
}

然而,用户未定义...... 我的猜测是代码向前运行,然后才能回复有效填写用户' 我是否正确等待变量填充以便能够使用内容? 或者它不是一个等待的混蛋,而是一个不同的错误?

1 个答案:

答案 0 :(得分:2)

User.find({}, function(err, data){
        if(err) res.send(err);
        users = data;
    }

上面的代码将以异步方式运行,因此您需要在结束之前获得结果。

所以试试这个:

    .get('/users', function(req, res){
        var users = [];
        User.find({}, function(err, data){
            if(err) res.send(err);
            users = data;

         //  do some things with the users

        res.json(users);
        }    
}