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;
我已经尝试了之前帖子中指出的所有事情,但没有任何效果,你能解释一下我做错了什么吗?谢谢!
把 import
和 require
混在一起很奇怪。使用import
并直接调用导入的模型函数:
import MessageFactory from './models/message'
import UserFactory from './models/user'
...
const models = {
User: UserFactory(sequelize, Sequelize.DataTypes),
Message: MessageFactory(sequelize,Sequelize.DataTypes),
}
我知道 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;
我已经尝试了之前帖子中指出的所有事情,但没有任何效果,你能解释一下我做错了什么吗?谢谢!
把 import
和 require
混在一起很奇怪。使用import
并直接调用导入的模型函数:
import MessageFactory from './models/message'
import UserFactory from './models/user'
...
const models = {
User: UserFactory(sequelize, Sequelize.DataTypes),
Message: MessageFactory(sequelize,Sequelize.DataTypes),
}