我想给返回的post
添加一个键,但是我似乎无法让lean()
起作用。我该如何在保存后操作返回的帖子?
我想也许我需要将findById
中加入lean
,像这样Post.findById(req.params.id).lean().then()
。但那没用,而且只会使第一个初始帖子可变。它会说:
post.save不是一个函数
如果我像这样做:Post.findById(req.params.id).lean().then()
也是一样的。
我只想返回即将发送回客户端的对象,我不想将键保存在实际文档中。
Post.findById(req.params.id)
.then(post => {
if (
post.likes.filter(like => like.user.toString() === req.user.id)
.length === 0
) {
return res
.status(400)
.json({ notliked: "You have not yet liked this post" });
}
// Get remove index
const removeIndex = post.likes
.map(item => item.user.toString())
.indexOf(req.user.id);
// Splice out of array
post.likes.splice(removeIndex, 1);
// Save
post.save().then(post => {
post["liked"] = false; <-------
res.json(post);
});
})
edit
Post.findById(req.params.id)
.lean()
.then(post => {
if (
post.likes.filter(like => like.user.toString() === req.user.id)
.length === 0
) {
return res
.status(400)
.json({ notliked: "You have not yet liked this post" });
}
// Get remove index
const removeIndex = post.likes
.map(item => item.user.toString())
.indexOf(req.user.id);
// Splice out of array
post.likes.splice(removeIndex, 1);
post["liked"] = false;
res.json(post);
// Save
post.save();
})
出现错误
post.save不是一个函数
liked
的真或假? - Ashh