续集关联功能无效

问题描述 投票:0回答:1

我使用现在的Sequelize版本并尝试构建两个模型之间的关联。实际上应该很简单,因为Sequelize提供hasManybelongsTo

但这个电话根本没有效果。我尝试使用新的SQL DB。表本身是在没有任何外键的情况下创建的。

enter image description here

db控制器

const userModel = require('../model/user')
const subjectModel = require('../model/subject')
const database = require('../db/database').sequeliceInstance

async function setupAssociations () {
  await database.sync()

  // user + subject
  userModel.hasMany(subjectModel)
  subjectModel.belongsTo(userModel)

  // subject and topic
  subjectModel.hasMany(topicModel)
  topicModel.belongsTo(subjectModel)

  // topic and question
  topicModel.hasMany(questionModel)
  questionModel.belongsTo(topicModel)

  // question and answer
  questionModel.hasMany(answerModel)
  answerModel.belongsTo(questionModel)
  return Promise.resolve()
}

user.js的

const Sequelize = require('sequelize')
const db = require('../db/database').sequeliceInstance

const user = db.define('user', {
  // attributes
  firstName: {
    type: Sequelize.STRING,
    allowNull: false
  },
  lastName: {
    type: Sequelize.STRING,
    allowNull: false
  },
  email: {
    type: Sequelize.STRING,
    allowNull: false
  },
  title: {
    type: Sequelize.STRING,
    allowNull: false
  },
  password: {
    type: Sequelize.TEXT,
    allowNull: false
  }
})

module.exports = user

subject.js

const Sequelize = require('sequelize')
const db = require('../db/database').sequeliceInstance

const subject = db.define('subject', {
  // attributes
  subjectName: {
    type: Sequelize.TEXT,
    allowNull: false
  }
})

module.exports = subject
javascript sequelize.js
1个回答
0
投票

我找到了解决方案。

必须在函数的最后调用await database.sync()

© www.soinside.com 2019 - 2024. All rights reserved.