我想检查登录用户(req.user)是否是在更新数据之前发布帖子的同一个人(post.author,它是ObjectId引用用户)。 我已经将路由限制在更新表单中,但我会仔细检查以防万一。
此代码正常运行,但我想知道是否有更简单或更好的方法来执行此操作。
app.put('/posts/:id', isLoggedIn, function(req,res){
Post.findById(req.params.id, function (err,post) {
if(!req.user._id.equals(post.author)) return res.json({success:false, message:"Unauthrized Attempt"});
Post.findByIdAndUpdate(req.params.id, req.body.post, function (err,post) {
res.redirect('/posts/'+req.params.id);
});
});
});
答案 0 :(得分:0)
我找到了更好的方法。
app.put('/posts/:id', isLoggedIn, function(req,res){
Post.findOneAndUpdate({_id:req.params.id,author:req.user._id}, req.body.post, function (err,post) {
res.redirect('/posts/'+req.params.id);
});
});