javascript - Sequelize 仅在子表中插入(关联 : belongsTo)

标签 javascript node.js sequelize.js

我有 2 个模型:UsersDoctors,其中 Doctors 模型具有 belongsTo() 约束用户

module.exports = (sequelize, DataTypes) => {
  const Doctors = sequelize.define('Doctors', {
    specialization: { type: DataTypes.STRING }
  })

  Doctors.associate = function (models) {
    Doctors.belongsTo(models.Users)
  }

  return Doctors
}

外键出现在我的数据库中,并且CREATE TABLE正确完成,但是

const newDoctor = await Doctors.create({
  specialization: req.body.specialization,
  Users: {
    firstname: firstname,
    lastname: lastname,
    email: email,
    password: password
  }
}, { include: Users })

发送请求后,会在 Doctors 表中添加,但不会在Users 表中添加> 表。

值得一提的是,所有关系都在另一个文件中完成,并且一切正常。

关于如何实现这项工作有什么想法吗?

编辑:需要明确的是,用户表没有被填充,但医生却被填充了。

最佳答案

有时,Sequelize 需要您在关联上指定别名。

Doctors.belongsTo(models.Users, { as: '用户' })

在创建时,您还可以添加别名。

const newDoctor = await Doctors.create({
  specialization: req.body.specialization,
  Users: {
    firstname: firstname,
    lastname: lastname,
    email: email,
    password: password
  }
}, { include: { model: Users, as: 'Users'} }).

别名和对象上的名称必须相同。

关于javascript - Sequelize 仅在子表中插入(关联 : belongsTo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56008548/

相关文章:

javascript - 模态搜索过滤器不会清除 ng-repeat 列表,以前的结果仍然存在

node.js - Azure函数: NodeJS - HTTP Response Renders as XML rather than HTML

javascript - Sequelize - 使用 MySQL 选择所有超过 5 分钟的记录的抽象查询

javascript - 尝试对对象数组进行排序以显示具有最高 "score"元素的前 3 个项目

javascript - 检查正则表达式匹配时如何避免多个 if 语句

Node.JS + MongoDB 用于现实世界的企业级应用程序?

javascript - 在 Node JS 中包含依赖的 JS 文件

graphql - 是否可以使用 Graphql 和 Sequelize 进行 Multi-Tenancy ?

express - PassportJS 本地无限循环认证

javascript - 访问 swig 模板中的最后一个数组元素