【问题标题】:Saving multiple documents at once - Mongoose.js一次保存多个文档 - Mongoose.js
【发布时间】:2016-02-15 15:29:42
【问题描述】:
user.save(function (err){
    if(err){
        throw err;
    }else{
        admin.save(function (err){
            if(err){
                throw err;
            }else{
                res.redirect('/home');
            }
       });
    }
});

这似乎不起作用。关于如何一次保存多个文档的任何建议?除了 mongoose 之外,我还可以使用任何其他模块来保存它们吗?谢谢你。

我也试过这个:

user.save(function (err){
     if(err)
        throw err;
     next();
});
admin.save(function (err){
     if(err)
        throw err;
     res.redirect('/home');
});

但这也没有用!再次感谢您的帮助

【问题讨论】:

  • 只要它们都是猫鼬文档,最上面的应该可以工作。
  • 现在它不起作用了,你会遇到什么样的错误?您是如何检查代码流的?
  • 我得到的错误是“发送后无法设置标题”。我尝试只调用第一个保存函数,它工作,我还尝试只调用第二个保存函数,它再次工作(我已经尝试过这两种方式,但我仍然得到同样的错误! )。但问题是......两个文件都被保存了,但是服务器崩溃了(我得到了上面的错误)并且它没有将我重定向到'/home',所以我必须重新启动服务器才能再次运行.
  • 对不起,第一个不行!
  • 能贴一下整个路线的代码吗?您遇到的错误很可能与您多次调用“res”对象有关。

标签: javascript node.js mongodb mongoose save


【解决方案1】:
app.post('/homeUser', function (req, res, next) {
            user.findOne({'accountOwner': req.user.userdata.username}, function (err, user){
                if(err)
                    throw err;
                if(user){
                    console.log('user found');
                    user.userdata.username = req.body.newUserName; // I have some other variables as well but they don't matter
                    user.save(function (err){
                        if(err)
                            throw err;
                        res.redirect('/home');
                    });
                } else if(!user) {
                    console.log('new user');
                    var newUser = new user();
                    //setting up some values for the newUser and some for the req.user
                    newUser.save(function (err){
                        if(err){
                            throw err;
                        }else{
                            req.user.save(function (err){ // the problem is here
                                if(err){
                                    throw err;
                                }else{
                                    res.redirect('/home');
                                }
                           });
                        }
                    });
                }
            });
    }

错误在 else{ req.user.save(function (err){ 或至少在该行。 (对不起,如果有拼写错误,我刚刚写了这段代码,因为我没有使用计算机进行编码,但这几乎是代码(除了一些分号和大括号!))

【讨论】:

    猜你喜欢
    • 2021-06-05
    • 1970-01-01
    • 2012-08-18
    • 2015-03-03
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多