node-sequelize操作mysql数据库(4)--关联模型

本文介绍了Sequelize中的一对一关联关系实现方法,并通过具体示例展示了如何使用HasOne和BelongsTo建立两个模型之间的关联。此外还提供了一个简单的查询示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sequelize 支持标准关联关系: 一对一, 一对多 和 多对多.
官方提供了四种关联类型,并将它们组合起来以创建关联:
HasOne
BelongsTo
HasMany
BelongsToMany
这里举例说明最简单的HasOneBelongsTo

const User = sequelize.define('user', {
	userName: {
    	type: DataTypes.STRING,
    	allowNull: false
  },
  	age: {
    	type: DataTypes.INTEGER
  }
});
const Info = sequelize.define('info', {
	userName: {
    	type: DataTypes.STRING,
    	allowNull: false
  },
  	num: {
    	type: DataTypes.INTEGER
  }
});

//将两个表一对一关联起来,两种方法。
//方法一
Info.belongsTo(User, { foreignKey: 'userName'})//这样写info是主体,要从info中查询。info.findAndCountAll
//方法二
User.hasOne(Info, { foreignKey: 'userName'})//这样写User是主体,要从USER中查询。User.findAndCountAll

调用方法关联查询

  //用户关联表查询
  getUserAndInfo:async(ctx)=>{
     //这是用的方法二
    const infoUser = await User.findAndCountAll({
      include: [{
        model: Info
      }],
    })
    ctx.body = {code:'200',userList:infoUser};
    return ctx.body 
  }

这里只是最简单的实现功能,更详细的还是看文档吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值