使用多个查询时出现Mongoose错误/ NodeJS?

时间:2017-01-27 16:02:06

标签: javascript node.js mongoose

我试图在post请求中使用两个查询,因为我想在满足某个条件时将一个东西推送到一个数组,并在满足不同条件时再次推送到该数组。但是,每当我尝试添加第二个User.find时,Node.JS就会崩溃。

router.post('/route', function(req, res){
    arr = []; //Empty array each time button is clicked before executing functions

User.find({"propertyA":req.user.valueA, "propertyB": req.user.valueB}, function(err, users) {
    for (var i = 0; i < users.length; i++) {
        for (var j = 0; j < 3; j++) { //Push to array 3 times
            req.user.arr.push(users[i].username);
            req.user.save(function(err) {
                if (err) throw err;
            });
        };
    };
    if (err) throw err;
});

User.find({"propertyC": req.user.valueC}, function(err, users) {
    for (var i = 0; i < users.length; i++) {
        for (var j = 0; j < 3; j++) {
            req.user.arr.push(users[i].username);
            req.user.arr.save(function(err) {
                if (err) throw err;
            });
        };
    };
    if (err) throw err;
});

res.redirect('/users/examplepage'); 

});

1 个答案:

答案 0 :(得分:0)

在第二次请求中,您执行以下操作:

req.user.arr.save(function(err) {
    if (err) throw err;
});

我认为req.user.arr不是Mongoose模型,只是普通的array。因此,在其上调用.save()函数将导致错误。您可能想要req.user.save()