【发布时间】:2018-10-31 11:09:23
【问题描述】:
我有一个 Express 路由,当用户单击以向线程提交新评论时触发该路由。该路由通过将新评论推送到 mongoose 对象中列表的末尾来处理此问题,然后将用户重定向回他们来自的页面。这应该向他们显示所有 cmets 的列表,包括他们刚刚添加的那个,但它没有。相反,它显示未修改的列表。需要重新加载才能显示他们刚刚添加的评论。
有问题的函数如下:
router.post('/get/:faultId/new_comment', function(req, res, next) {
var commenter = req.body.first_name + " " + req.body.last_name;
var comment = req.body.new_comment_text
var datetime = Date.now();
var comment_object = commentCreate(commenter, comment, datetime);
FaultReport
.findOne({
'_id': req.params.faultId
})
.exec(function(err, report) {
if (err) return console.error(err);
report.comment.push(comment_object);
report.save();
});
res.redirect('/api/get/' + req.params.faultId);
});
我显然误解了一些东西。如何在重定向用户之前等待数据库更新?
【问题讨论】: