Итак, я пытаюсь добавить ключ к возвращенному post
.Но я не могу заставить lean()
работать.Как я могу манипулировать возвращаемым сообщением после сохранения?
Я думал, может быть, мне нужно добавить Lean к моему findById
, как это 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 не является функцией