无法动态更新mongodb文档

时间:2014-12-23 12:01:57

标签: node.js mongodb express mongoose

我是Node.js和MongoDB的新手。我正在尝试使用这个代码,其中我有一个名为test的布尔文档,最初是" false"在Mongodb中,我想在加载页面/ hello时发出警告。然后转到另一个页面提交表单并将测试更新为true并再次加载/ hello。所以这次它应该警告真实(当我检查数据库时它已经更新为真)但是当我测试时它没有提醒任何东西。如果你在做错的时候让我知道,那会很棒!

这是我app.js中的相关代码

app.post("/Submitted", function(req,res){ 
    var conditions = mongoose.model('users').findOne({username: req.session.user.username}, function (err, doc){
      doc.test = true;
      doc.save();
        res.redirect('hello');
    });


app.get('/hello', function (req, res) {
    var umbrella = req.session.user.test;
    if (req.session.user) {
        res.render('5points', {test: test});
    } else {
        res.redirect('/');
    }
});

这是我的玉文件:

script.
  function check() {
    var test= !{JSON.stringify(test)};
    alert(test);
body(onload= "check()")

1 个答案:

答案 0 :(得分:0)

res.redirect(' hello')在doc.save完成之前被触发.Remember node.js是非阻塞I / O.So你需要调用res.redirect里面的保存回调。

app.post("/Submitted", function(req, res) {
    var conditions = mongoose.model('users').findOne({
            username: req.session.user.username
        }, function(err, doc) {
            doc.test = true;
            doc.save(function(err) {
                if (err) return res.json(message: "error");
                res.redirect('hello');
            });
        }
    });
});