2017-11-14 10 views
0

expressJsプロジェクトでは、sequelizeを使用してデータベースとやり取りしています。Sequelizeはモデルをインポートできません

これは私のモデル/ user.jsのです:

module.exports = (sequelize, DataTypes) => { 
 
    sequelize.define('user', { 
 
     email: { 
 
      type: DataTypes.STRING, 
 
      unique: true 
 
     }, 
 
     password: DataTypes.STRING 
 
    }) 
 
}

そして、これは、モデル/ 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の上

全体コード:here

答えて

0

問題は、

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; 
} 
に欠けているの復帰の可能性
関連する問題