[英]How to check if post has been liked by current user
How would i be able to check if the current user liked the post or not.我如何能够检查当前用户是否喜欢该帖子。 Ideally this would be similar to liking a post on instagram.理想情况下,这类似于喜欢 Instagram 上的帖子。 The heart is filled red indicating that YOU liked it.心为红色表示您喜欢它。
how would i be able to add a similar functionality for the backend.我如何能够为后端添加类似的功能。
I know the backend would have a boolean that indicates a user has like there own post.我知道后端会有一个 boolean 表示用户喜欢有自己的帖子。 I'm using sequelize, given my model, what should i do to make this functionality work.鉴于我的 model,我正在使用 sequelize,我应该怎么做才能使此功能正常工作。
Ideally the liked column in post should indicate if i liked post or not.理想情况下,帖子中的“喜欢”列应表明我是否喜欢帖子。
req.session.user.id
gets the current user. req.session.user.id
获取当前用户。
post.controller帖子.controller
getPosts: async (req: Request, res: Response) => {
await models.Post.findAll({
include: [
{ model: models.User, as: "author", attributes: ["username"] },
{ model: models.Likes }
],
order: [["createdAt", "DESC"]],
limit: 6
}).then(posts => {
res.json(posts);
});
},
Post (model)帖子(模型)
"use strict";
module.exports = (sequelize, DataTypes) => {
var Post = sequelize.define("Post", {
title: DataTypes.STRING,
postContent: DataTypes.STRING,
liked: {
type: DataTypes.BOOLEAN,
allowNull: false,
defaultValue: false
},
likeCounts: {
type: DataTypes.INTEGER,
allowNull: false,
defaultValue: 0
},
authorId: DataTypes.INTEGER
}, {});
Post.associate = function (models) {
Post.belongsTo(models.User, {
as: "author",
foreignKey: "authorId",
onDelete: "CASCADE"
});
Post.hasMany(models.Likes, {
foreignKey: "resourceId",
timestamps: false,
targetKey: "id",
onDelete: "CASCADE"
});
};
Post.prototype.likedByMe = postId => { };
return Post;
};
//# sourceMappingURL=post.js.map
Like (model)喜欢(型号)
"use strict";
module.exports = (sequelize, DataTypes) => {
var Likes = sequelize.define("Likes", {
userId: DataTypes.INTEGER,
resourceId: DataTypes.INTEGER,
likeByMe: {
type: DataTypes.BOOLEAN,
defaultValue: false,
allowNull: false
}
});
Likes.associate = function (models) {
// associations can be defined here
Likes.belongsTo(models.User, {
foreignKey: "userId",
timestamps: false,
onDelete: "CASCADE"
});
Likes.belongsTo(models.Post, {
foreignKey: "resourceId",
timestamps: false,
onDelete: "CASCADE",
targetKey: "id"
});
};
return Likes;
};
//# sourceMappingURL=likes.js.map
something like就像是
const iLikeIt = Like.findOne({ where: {
resourceId: postId,
userId: req.session.user.id,
}})
if (iLikeIt) {
// i liked it
} else {
// i didn't like it
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.