仅在子表中排序插入(关联:belongsTo)

时间:2019-05-06 15:48:38

标签: javascript node.js sequelize.js

我有2个模型:UsersDoctors,其中Doctors模型对belongsTo()Users约束。

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

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

  return Doctors
}

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

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

发送请求时,,但未在Doctors表中添加

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

关于如何进行这项工作的任何想法?

编辑:为清楚起见,“用户”表未填充,但“医生”已填充。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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