2017-11-14 1 views
0

expressJs 프로젝트에서 sequelize를 사용하여 데이터베이스와 상호 작용하려고합니다.Sequelize에서 모델을 가져올 수 없습니다.

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

을 문제

내 모델 /의 user.js입니다 에있다 이 줄

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; 
} 
에 누락 된 반환 될 수 있습니다
관련 문제