2017-06-05 14 views
0

でsequelizeを使用して、私は私がモデルに取り組んでいる、Node.jsのプロジェクトのためにSequelizeを使用する方法learnigだ:"defineCallは関数ではありません"。 Node.jsの

index.js

var Sequelize = require('sequelize'); 
const sequelize = new Sequelize('mysql://bf3a13a7df5b2f:[email protected]/heroku_6bdb0d8ad6c6a50?reconnect=true'); 

// load models 
var models = [ 
    'student', 
    ]; 

models.forEach(function(model) { 
    module.exports[model] = sequelize.import(__dirname + '/' + model); 
}); 

// export connection 
module.exports.student= student; 
module.exports.sequelize = sequelize; 

student.js

var sequelize = require('./dbConnection'); 
var Sequelize = require('sequelize'); 

const student = sequelize.define('student', { 
    id: { 
    type: Sequelize.STRING, 
    primaryKey: true 
    }, 
    name: { 
    type: Sequelize.STRING 
    }, 
    middleName: { 
    type: Sequelize.STRING 
    }, 
    lastName: { 
    type: Sequelize.STRING 
    }, 
    dob: { 
    type: Sequelize.DATE 
    }, 

    //student.sync({force: true}); 
}); 

module.exports = student; 

、これは、私は、コマンドラインから受信したエラーメッセージです:

C:\Users\adria\OneDrive\Documentos\GitHub\ScholarMean1\node_modules\sequelize\lib\sequelize.js:691 
    this.importCache[path] = defineCall(this, DataTypes); 
          ^

TypeError: defineCall is not a function 

モデルがindex.jsにあれば動作させることができましたが、モデルごとにファイルを作成したいので、私が助けてくれることを願っています。

答えて

0

今私も同様の問題がありましたが、実際にはデータベースモデルではないmodelsフォルダにあったファイルが問題でした。 modelsフォルダには、データベースのモデルのみが含まれていることを確認してください。うまくいけば、これは役立ちます!

関連する問題