我是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()")
答案 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');
});
}
});
});