用户如何使用 sequelize postgres nodejs 互相点赞 post?
How can users like each others post using sequelize postgres nodejs?
我正在努力实现用户可以互相喜欢post。
这是我的点赞模型:
const Likes = db.define("Likes", {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER,
},
PostId: {
type: Sequelize.INTEGER,
references: {
model: "Post",
key: "id",
},
onUpdate: "cascade",
onDelete: "cascade",
},
userId: {
type: Sequelize.INTEGER,
references: {
model: "User",
key: "id",
},
onUpdate: "cascade",
onDelete: "cascade",
},
createdAt: {
allowNull: false,
type: Sequelize.DATE,
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE,
},
这是我的 Post 型号:
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
},
title: {
type: Sequelize.STRING,
},
userId: {
type: Sequelize.INTEGER,
},
这是我的用户模型:
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
},
name: {
type: Sequelize.STRING,
},
这是我的联想:
db.Likes.belongsTo(db.User, { foreignKey: "userId", targetKey: "id" });
db.Likes.belongsTo(db.Post, { foreignKey: "PostId", targetKey: "id" });
db.Post.hasMany(db.Likes, { foreignKey: "PostId", targetKey: "id" });
db.User.hasMany(db.Likes, { foreignKey: "userId", targetKey: "id" });
我应该如何着手实施喜欢和不喜欢的动作?
应该是get请求还是post请求?
添加一个赞应该是一个 post
操作,以添加将用户链接到 post 的新关联。正如您所建议的那样,这应该是用户和 post 之间的一对一,因为不可能多次喜欢 post。
不喜欢就像删除关联一样简单,因此您可以通过对用户与 [=16] 之间的关联执行 get
来测试特定用户是否喜欢 post =]在你喜欢中间table。如果它不存在,则用户不喜欢它(并且应该被允许喜欢它),反之亦然。
我正在努力实现用户可以互相喜欢post。
这是我的点赞模型:
const Likes = db.define("Likes", {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER,
},
PostId: {
type: Sequelize.INTEGER,
references: {
model: "Post",
key: "id",
},
onUpdate: "cascade",
onDelete: "cascade",
},
userId: {
type: Sequelize.INTEGER,
references: {
model: "User",
key: "id",
},
onUpdate: "cascade",
onDelete: "cascade",
},
createdAt: {
allowNull: false,
type: Sequelize.DATE,
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE,
},
这是我的 Post 型号:
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
},
title: {
type: Sequelize.STRING,
},
userId: {
type: Sequelize.INTEGER,
},
这是我的用户模型:
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
},
name: {
type: Sequelize.STRING,
},
这是我的联想:
db.Likes.belongsTo(db.User, { foreignKey: "userId", targetKey: "id" });
db.Likes.belongsTo(db.Post, { foreignKey: "PostId", targetKey: "id" });
db.Post.hasMany(db.Likes, { foreignKey: "PostId", targetKey: "id" });
db.User.hasMany(db.Likes, { foreignKey: "userId", targetKey: "id" });
我应该如何着手实施喜欢和不喜欢的动作?
应该是get请求还是post请求?
添加一个赞应该是一个 post
操作,以添加将用户链接到 post 的新关联。正如您所建议的那样,这应该是用户和 post 之间的一对一,因为不可能多次喜欢 post。
不喜欢就像删除关联一样简单,因此您可以通过对用户与 [=16] 之间的关联执行 get
来测试特定用户是否喜欢 post =]在你喜欢中间table。如果它不存在,则用户不喜欢它(并且应该被允许喜欢它),反之亦然。