sequelize用外键创建记录

时间:2017-07-12 23:39:57

标签: sequelize.js

让我们说条件是用户有很多项目

var User = sequelize.define('user', {
  id: { type: Sequelize.INTEGER, primaryKey: true},
  name: Sequelize.STRING,
}, {
  underscored: true,
  constraints: false
})

var Project = sequelize.define('project', {
  id: { type: Sequelize.INTEGER, primaryKey: true},
  title: Sequelize.STRING,
}, {
  underscored: true,
  constraints: false
})

Project.belongsTo(User)
User.hasMany(Project)

如果我已经在DB中有用户记录

{ id: 1, name: "spondbob" }

如何使用该用户创建项目?我在某个地方看到过,我们可以在创建项目时执行此操作

{
  id: 1,
  title: "Project 1",
  user_id: 1
}

但除了直接提到外键之外,是否有一种优雅的方式来设置用户?

另外我知道我可以创建项目并执行project.setUser(user)但问题是user_id外键设置为NOT NULL。在这种情况下,我必须在创建项目时添加user_id,而不是在创建后设置它。

要添加它,如果我需要为用户创建和分配多个项目,我该如何实现?

1 个答案:

答案 0 :(得分:0)

{
  id: 1,
  title: "Project 1",
  user_id: 1
}

如果您将外键名称指定为以下代码,则上面的代码将起作用:

Project.belongsTo(User, {foreignKey: 'user_id'})