所以我一直在尝试为一个项目构建一个中等克隆,因此,我需要为我的“用户”和“文章”表建立一个 1 : N 关系。但是当我添加关联时Article.belongsTo(User);,我收到一条错误消息Error: Article.belongsTo called with something that's not a subclass of Sequelize.Model,我们将不胜感激任何形式的帮助。
这是我的代码:
文章.js
const {Sequelize, DataTypes} = require('sequelize');
const db = require('../../config/Database');
const User = require('../User/User');
const Article = db.define('Article', {
slug : {
type: DataTypes.STRING(30),
allowNull: false,
primaryKey: true,
unique: true
},
title : {
type: DataTypes.STRING(50),
allowNull: false
},
description : {
type: DataTypes.STRING(100)
},
body : {
type: DataTypes.STRING
},
createdAt : {
allowNull: false,
type: DataTypes.DATE,
defaultValue: DataTypes.NOW
},
updatedAt : {
allowNull: false,
type: DataTypes.DATE,
defaultValue: DataTypes.NOW
},
favorited : {
type : DataTypes.BOOLEAN,
defaultValue: 0
},
favoritesCount : {
type : DataTypes.INTEGER,
defaultValue : 0
}
},{
freezeTableName: true
})
Article.belongsTo(User);
module.exports = Article;
用户.js
const {Sequelize,DataTypes} = require('sequelize');
const db = require('../../config/Database');
const Article = require('../Article/Article');
const User = db.define('User', {
email: {
type: DataTypes.STRING,
allowNull: false,
primaryKey: true,
unique: true
},
username: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
password: {
type: DataTypes.STRING,
allowNull: false
},
bio: {
type: DataTypes.STRING(100),
allowNull: true
},
image: {
type: DataTypes.STRING,
allowNull: true
},
token: {
type: DataTypes.STRING
}
},{
freezeTableName: true
})
User.hasMany(Article);
module.exports = User;