Sequelize require函数不创建模型



我知道sequelize。在我基本上研究了关于这个主题的每个问题之后,我已经达到了我的代码的最后一个版本: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),
}

最新更新