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;
을 살펴보고이 내 모델입니다. 내가 프로젝트를 실행할 때. 그것은 정의되지 않은 sequelize 오류를 보여줍니다.
OkAkun.js
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을 사용하여 새로운 해요. 그리고 내가 여기서 누락 된 단계를 이해하지 못합니다.
의견이 있으십니까?
예. 그렇습니다. 고맙습니다. 하지만 다른 오류가 있습니다. 테이블 'OkAkuns'가 존재하지 않습니다. 내 테이블은 OkAkun.js 모델에 정의 된 's'가없는 'OkAkun'입니다. 여기에 무엇이 있습니까? thx –
제발 링크를 추가 할 수 있습니다 자습서 제로에서 sequelize하시기 바랍니다. –
Sequelize는 테이블 이름을 결정할 때 모델 이름을 자동으로 복수화합니다. 'freezeTableName : true'를 모델 옵션에 전달함으로써 이것을 막을 수 있습니다. 공식 문서는 시작할 수있는 좋은 곳입니다. 그것은 내가 Sequelize를 배웠던 곳이다 :) https://sequelize.readthedocs.org –