繁体   English   中英

续集无法导入模型

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM