node.js - 错误:使用不是 Sequelize.Model 子类的东西调用 Sequelize Assosication
问题描述
大家好,当我在我的模型中添加 Sequelize 的关联时,我遇到一个错误“错误:Text.belongsTo 调用了不是 Sequelize.Model 的子类”,它调用了一个错误,我称之为不是 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;
解决方案
尝试在您的模型文件夹中创建一个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 模型中
推荐阅读
- sql - 如何添加一行以检查它是否存在?
- python - 条形图 df.plot() vs ax.bar() 结构 matplotlib
- swift - Swift 中不同线程之间的同步
- reactjs - 通过 Express 服务器在 React 中显示来自 MongoDB 的二进制图像
- variables - Erlang 变量管理
- javascript - 将 UTM 值从 URL 推送到隐藏字段的脚本 (Webflow)
- neo4j - Neo4j 匹配来自先前查询的可变关系数
- python - python中的所有for循环都可以转换为列表理解等价物吗?
- ios - 如何在 ios swift 中验证某个用户的电子邮件地址?
- python - 如何使用 Python 从文件创建字典?