javascript - 使用 sequelize findAll 时,forEach 找不到正确的用户 ID
问题描述
我有一个场景,用户喜欢他的帖子,它会填满一颗心,很酷。如果用户 2 喜欢相同的帖子,用户 1 的心就会变得空虚。
有一个属性"likeByMe"
,它是一个布尔值。
它需要检查当前用户是否喜欢该帖子。
以下是场景
这就是我获取帖子的方式,我正在使用setDataValue
post.controller.js
getPosts: async (req: any, res: Response) => {
// use async/await here
const posts = await models.Post.findAll({
include: [
{ model: models.User, as: "author", attributes: ["username"] },
{
model: models.Likes
}
],
order: [["createdAt", "DESC"]],
limit: 6
});
posts.forEach(post => {
if (post.Likes.length === 0) {
post.setDataValue("likedByMe", false);
}
post.Likes.forEach(like => {
console.log(like.userId);
if (like.userId === req.session.user.id) {
post.setDataValue("likedByMe", true);
} else {
post.setDataValue("likedByMe", false);
}
});
});
return res.json(posts);
},