Sequelize require 函数不创建模型

Sequelize require function does not create the models

我知道 sequelize.import 已被弃用,并且在我基本​​上研究了关于该主题的每一个问题之后,我得到了我的代码的最新版本: src/models/message.js:

import sequelize from '.message.js'
import { DataTypes, Sequelize } from 'sequelize/types'




module.exports=(sequelize,DataTypes)=>{
    const Message=sequelize.define("message",{
        text:{
            type:DataTypes.STRING
        }
    })

    Message.associate=models=>{
        Message.belongsTo(models.User)
    }

    return Message
}

src/models/index.js

import 'dotenv/config';
import Sequelize from 'sequelize';



const sequelize = new Sequelize(
  process.env.DATABASE,
  process.env.DATABASE_USER,
  process.env.DATABASE_PASSWORD,
  {
    dialect: 'postgres',
  },
);

const models = {
  User: require('./user')(sequelize, Sequelize.DataTypes),
  Message: require('./message')(sequelize,Sequelize.DataTypes),
}

Object.keys(models).forEach(key => {
  if ('associate' in models[key]) {
    models[key].associate(models);
  }
});

export { sequelize };

export default models;

我已经尝试了之前帖子中指出的所有事情,但没有任何效果,你能解释一下我做错了什么吗?谢谢!

importrequire 混在一起很奇怪。使用import并直接调用导入的模型函数:

import MessageFactory from './models/message'
import UserFactory from './models/user'
...
const models = {
  User: UserFactory(sequelize, Sequelize.DataTypes),
  Message: MessageFactory(sequelize,Sequelize.DataTypes),
}