在Node.js中使用Sequelize进行一对多(One-to-Many)和多对多(Many-to-Many)关系的增删改操作,可以通过定义模型关系(Association)和相应的方法来实现。以下是基本的代码示例:
一对多(One-to-Many)
假设有 User
和 Post
两个模型,一个用户可以有多篇文章。
定义模型关系:
User.hasMany(Post, { foreignKey: 'userId' });
Post.belongsTo(User, { foreignKey: 'userId' });
增加:
const user = await User.create({ name: 'John' });
await user.createPost({ title: 'First Post' });
删除:
await Post.destroy({ where: { id: postId } });
更新:
await Post.update({ title: 'Updated Post' }, { where: { id: postId } });
多对多(Many-to-Many)
假设有 User
和 Role
两个模型,一个用户可以有多个角色,一个角色也可以分配给多个用户。
定义模型关系:
User.belongsToMany(Role, { through: 'UserRole' });
Role.belongsToMany(User, { through: 'UserRole' });
增加:
await user.addRole(role);
删除:
await user.removeRole(role);
更新(需先删除再重新关联):
await user.setRoles([newRole]);
以上示例展示了基本的增删改操作,实际应用中需根据具体需求处理事务和错误。