1

所以我一直在尝试为一个项目构建一个中等克隆,因此,我需要为我的“用户”和“文章”表建立一个 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;
4

0 回答 0