错误:调用了Sequelize Assosication而不是Sequelize.Model的子类

时间:2020-10-22 11:22:47

标签: node.js postgresql sequelize.js

大家好,我遇到错误“ 错误:Text.belongsTo调用了不是Sequelize.Model子类的东西”,当我在模型中添加Sequelize关联时,它称为错误我所说的不是Sequelize模型。

这是我的模型的代码,我尝试在Post模型和Text模型之间创建关联。

./ Post.js

const { DataTypes } = require('sequelize');
const sequelize = require('../../db/sequelize.setup');

const Text = require('./Text');

const Post = sequelize.define(
  'Post',
  {
    id: {
      type: DataTypes.INTEGER,
      autoIncrement: true,
      primaryKey: true,
      allowNull: false,
    },
    title: {
      type: DataTypes.STRING(),
      allowNull: false,
    },
    tags: {
      type: DataTypes.ARRAY(DataTypes.INTEGER),
      allowNull: true,
    },
    items: {
      type: DataTypes.ARRAY(DataTypes.INTEGER),
      allowNull: false,
    },
    author: {
      type: DataTypes.INTEGER,
    },
  },
  {
    modelName: 'Post',
    timestamps: true,
  }
);

  Post.hasMany(Text, {
    as: 'Text',
    foreignKey: 'post_id',
    sourceKey: 'id',
  });

module.exports = Post;

./ Text.js

 const { DataTypes } = require('sequelize');
    const sequelize = require('../../db/sequelize.setup');
    
    const Post = require('./Post');
    
    const Text = sequelize.define(
      'Text',
      {
        id: {
          type: DataTypes.INTEGER,
          autoIncrement: true,
          primaryKey: true,
          allowNull: false,
        },
        text: {
          type: DataTypes.STRING(),
          allowNull: false,
        },
      },
      {
        modelName: 'Text',
        timestamps: true,
      }
    );
    
    Text.belongsTo(Post, { as: 'Post', foreignKey: 'post_id', targetKey: 'id' });
    
    module.exports = Text;

1 个答案:

答案 0 :(得分:0)

尝试在您的models文件夹中创建一个 index.js 文件,并在其中创建与您的关联

const db = {};
db.Sequelize = Sequelize;
db.sequelize = sequelize;
db.posts=require("./post.js")(sequlize,sequlize);
db.texts=require....
db.posts.hasMany(db.texts, { foreignKey: 'postId' });
db.texts.belongsTo(db.posts, { foreignKey: 'postId' });

并将postId放入text.js模型