[英]Sequelize can not import a model
在expressJs项目中,我尝试使用sequelize与数据库进行交互。
这是我的模型/ user.js:
module.exports = (sequelize, DataTypes) => { sequelize.define('user', { email: { type: DataTypes.STRING, unique: true }, password: DataTypes.STRING }) }
这是models / index.js:
const fs = require('fs') const path = require('path') const Sequelize = require('sequelize') const config = require('../config/config') const db = {} const sequelize = new Sequelize( config.db.database, config.db.user, config.db.password, config.db.options ) fs .readdirSync(__dirname) .filter((file) => file !== 'index.js' ) .forEach((file) => { var a = path.join(__dirname, file); const model = sequelize.import(path.join(__dirname, file)); db[model.name] = model; }) db.sequelize = sequelize db.Sequelize = Sequelize module.exports = db
问题是在这条线
const model = sequelize.import(path.join(__dirname, file));
返回未定义的模型变量。
我在这里想念什么? 我有任何提示吗?
Github上的整个代码: 在这里
问题可能是由于缺少回报
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', { // Missing return
email: {
type: DataTypes.STRING,
unique: true
},
password: DataTypes.STRING
})
}
改成
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
email: {
type: DataTypes.STRING,
unique: true
},
password: DataTypes.STRING
});
return User;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.