2016-11-04 3 views
0

私のormデータベースにsequelizeを使用しています。私はmysqlを使用しています。Sequelizeは定義されていません

プロジェクトを実行するときにこのエラーが発生しました。

var accounts = sequelize.define('OkAkun' , {//attrbut 
         ^

ReferenceError: sequelize is not defined 
    at module.exports (/path_to_project/Backend/app/models/OkAkun.js:7:26) 
    at Sequelize.import (/path_to_project/Backend/node_modules/sequelize/lib/sequelize.js:691:30) 
    at /path_to_project/Backend/app/models/index.js:30:32 
    at Array.forEach (native) 
    at Object.<anonymous> (/path_to_project/Backend/app/models/index.js:29:3) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (/path_to_project/Backend/app/routes/routers.js:4:13) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 

は私のファイルの

index.js

"use strict"; 
var fs = require('fs'); 
var path = require ('path'); 
var Sequelize = require ('sequelize'); 
var basename = path.basename(module.filename); 
var env = process.env.NODE_ENV || "development"; 
var dbConfig =require(__base + "config/initializers/config.js").database; 
var sequelize; 

sequelize = new Sequelize(dbConfig[env].database , dbConfig[env].username , dbConfig[env].password, 
      { 
       "dialect": "mysql", 
       "host" :dbConfig[env].host, 
       "port" :dbConfig[env].port, 
       "logging": false, 
       "define": {underscored: true} 
      }); 

var db = {}; 

fs 
.readdirSync(__dirname) 
.filter(function(file){ 
    return (file.indexOf(".") !== 0) && (file !== basename); 
}) 
.forEach(function(file) { 
    var model = sequelize.import(path.join(__dirname,file)); 
    db[model.name] = model; 
}); 

Object.keys(db).forEach(function (modelName){ 
    if("associate" in db[modelName]){ 
     db[modelName].associate(db); 
    } 
}); 

db.sequelize = sequelize; 
db.Sequelize = Sequelize; 



module.exports = db; 

を見て、これは私のモデルです。私がプロジェクトを実行するとき。それは定義されていない後続するエラーを示します。

OkAkun.js FYI

module.exports = function() { 

var accounts = sequelize.define('OkAkun' , {//attrbut 

    id_akun : { 
     autoIncrement: true, 
     type : DataTypes.INTEGER, 
     allowNull: false, 
     primaryKey : true 
    }, 
    username:{ 
     type : DataTypes.STRING, 
     allowNull: false 
    }, 
    phone_number:{ 
     type: DataTypes.STRING, 
     allowNull:false 
    }, 
    email : { 
     type: DataTypes.STRING, 
     allowNull: true 
    }, 
    create_at : { 
     type: DataTypes.DATE, 
     allowNull: false  
    }, 
    update_at : { 
     type : DataTypes.DATE, 
     allowNull: false 
    }, 
    password : { 
     type: DataTypes.STRING, 
     allowNull: false 
    } 
}); 

return accounts; 

}; 

、私はsequelizeのようなデータベースのORMを使用して新たなんです。そして、私はここで何が足りないのか分かりません。

どのような考えですか?

答えて

0

モデル関数の引数にsequelizeDataTypesを追加する必要があります。あなたがsequelize.importを実行すると、Sequelizeがこれらを渡します。

も参照https://github.com/sequelize/express-example/blob/master/models/task.js

+0

はい、それです。ありがとうございました。しかし、それは他のエラーを持っています。テーブル 'OkAkuns'は存在しません。私のテーブルは、モデルOkAkun.jsで定義されているように、 's'なしの 'OkAkun'です。 ここには何がありますか? thx –

+0

リンクのチュートリアルを追加して、ゼロから続けるようにしてください。 –

+1

Sequelizeはテーブル名を決定する際にモデル名を自動的に複数にします。これを無効にするには、 'freezeTableName:true'をモデルオプションに渡します。公式の文書は始めるのに適しています。それは私がSequelizeを学んだ場所です:) https://sequelize.readthedocs.org –

関連する問題