【问题标题】:Why the Associations do not work in sequelize?为什么协会在续集中不起作用?
【发布时间】:2020-11-26 23:35:43
【问题描述】:

我需要知道为什么我的代码不起作用。我正在尝试制作一个具有外键 userId 和 productId 的购物车表。 为了实现这一点,在我的产品模型和用户中,我执行我遵循的操作:

User.hasMany(Car,{
    primaryKey:'userId'
})

module.exports=User;

  Product.hasMany(Car,{
      primaryKey:'productId'
  })

module.exports = Product;

在汽车模型中我有:

 const {Model, DataTypes}=require('sequelize');
    const sequelize=require('../config/database');
    const Product=require('./Product');
    const User=require('./User');
    
    class Car extends Model{}
    
    Car.init({
        id:{
            primaryKey:true,
            allowNull:false,
            type:DataTypes.UUID,
            defaultValue:DataTypes.UUIDV1
        }
    },{
       sequelize,
       modelName: 'car'
    });
    
    module.exports=Car;

我遇到了这个错误:

enter image description here

我需要帮助。

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    您应该在 Sequelize 中注册所有模型,然后才能注册它们的关联。也不要将模型导入到彼此的模型文件中。在每个模型中定义associate 函数来注册关联。见我的answer

    【讨论】:

    • 没错。如果您需要另一个与 Anatoly 的答案非常相似的答案,我的也有here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 2022-07-07
    相关资源
    最近更新 更多