How to resolve "Error: belongsTo called with something that's not a subclass of Sequelize.Model "?

Viewed 44

So I've been trying to build a medium-clone for a project and therefore, I need to make a 1 : N relation for my "User" and "Article" Tables. But when I add the association Article.belongsTo(User); , I receive an error stating Error: Article.belongsTo called with something that's not a subclass of Sequelize.Model , and any kind of help would be highly appreciated.

Here's my code :

Article.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; 

User.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;
0 Answers
Related