sequelize / express-example

A proposal for the usage of Sequelize within an Express.JS application.
MIT License
2.5k stars 773 forks source link

I'm receiving a ERROR: sequelize is not defined #102

Closed magacho closed 4 years ago

magacho commented 4 years ago

I'm new in Node and also sequelize, can anyone help me with that. I'll send my files but the config.json and config.js. I'm getting this error during the execution of sequelize db:migrate:

sequelize db:migrate

Sequelize CLI [Node: 12.18.1, CLI: 5.5.1, ORM: 5.21.13]

Loaded configuration file "config/config.js".
Using environment "development".
== 20200622031102-create_package_table: migrating =======

ERROR: sequelize is not defined

this is my models/index.js `'use strict';

const fs = require('fs'); const path = require('path'); const Sequelize = require('sequelize'); const basename = path.basename(__filename); const env = process.env.NODE_ENV || 'development'; const config = require(__dirname + '/../../config/config.json')[env]; const db = {};

console.log('Iniciando sequelize!!!!');

var sequelize; if (config.use_env_variable) { //sequelize = new Sequelize(process.env[config.use_env_variable], config); sequelize = new Sequelize(process.env["development"], config); console.log('sequelizeCriado'); } else { sequelize = new Sequelize(config.database, config.username, config.password, config); }

fs .readdirSync(dirname) .filter(file => { return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js'); }) .forEach(file => { const model = sequelize['import'](path.join(dirname, file)); db[model.name] = model; });

Object.keys(db).forEach(modelName => { if (db[modelName].associate) { db[modelName].associate(db); } });

sequelize .authenticate() .then(() => { console.log("Connection has been established succesfully"); }) .catch((err) => { console.log("Unable to connect to the database:", err); });

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

module.exports = db; global.sequelize = db.sequelize; `

this is one of my models package.js

`const db = require('.');

'use strict';

module.exports = (sequelize, DataTypes) => { var Package = sequelize.define('Package', { id: { type: sequelize.BIGINT, allowNull: false, primaryKey: true,
autoIncrement: true }, name: { type: sequelize.STRING, allowNull: false }, creationDate: { type: sequelize.DATE, allowNull: false, field: "createdAt" }, tackingCode: { type: sequelize.STRING, allowNull: false, field: "tackingCode", validate: { len: [13, 13], is: ["^[A-Z]{2}[1-9]{9}[A-Z]{2}$", 'i'] } }, isDelivered: { type: sequelize.BOOLEAN, allowNull: false, defaultValue: true, field: "isDelivered" }

}, { tableName: 'Packages', sequelize, modelName: 'Package', timestamps: true }); Package.associate = function (models) { models.Package.hasMany(models.PackageCheck, { onDelete: "CASCADE", foreignKey: { allowNull: false } });

}; return Package; };` It seems that the index.js is not running in the migration process.

magacho commented 4 years ago

Should have been opened in cli project. Sorry.

bahuy5696 commented 3 years ago

Should have been opened in cli project. Sorry.

I'm new in Node and also sequelize, can anyone help me with that. I'll send my files but the config.json and config.js. I'm getting this error during the execution of sequelize db:migrate:

sequelize db:migrate

Sequelize CLI [Node: 12.18.1, CLI: 5.5.1, ORM: 5.21.13]

Loaded configuration file "config/config.js".
Using environment "development".
== 20200622031102-create_package_table: migrating =======

ERROR: sequelize is not defined

this is my models/index.js `'use strict';

const fs = require('fs'); const path = require('path'); const Sequelize = require('sequelize'); const basename = path.basename(__filename); const env = process.env.NODE_ENV || 'development'; const config = require(__dirname + '/../../config/config.json')[env]; const db = {};

console.log('Iniciando sequelize!!!!');

var sequelize; if (config.use_env_variable) { //sequelize = new Sequelize(process.env[config.use_env_variable], config); sequelize = new Sequelize(process.env["development"], config); console.log('sequelizeCriado'); } else { sequelize = new Sequelize(config.database, config.username, config.password, config); }

fs .readdirSync(dirname) .filter(file => { return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js'); }) .forEach(file => { const model = sequelize['import'](path.join(dirname, file)); db[model.name] = model; });

Object.keys(db).forEach(modelName => { if (db[modelName].associate) { db[modelName].associate(db); } });

sequelize .authenticate() .then(() => { console.log("Connection has been established succesfully"); }) .catch((err) => { console.log("Unable to connect to the database:", err); });

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

module.exports = db; global.sequelize = db.sequelize; `

this is one of my models package.js

`const db = require('.');

'use strict';

module.exports = (sequelize, DataTypes) => { var Package = sequelize.define('Package', { id: { type: sequelize.BIGINT, allowNull: false, primaryKey: true, autoIncrement: true }, name: { type: sequelize.STRING, allowNull: false }, creationDate: { type: sequelize.DATE, allowNull: false, field: "createdAt" }, tackingCode: { type: sequelize.STRING, allowNull: false, field: "tackingCode", validate: { len: [13, 13], is: ["^[A-Z]{2}[1-9]{9}[A-Z]{2}$", 'i'] } }, isDelivered: { type: sequelize.BOOLEAN, allowNull: false, defaultValue: true, field: "isDelivered" }

}, { tableName: 'Packages', sequelize, modelName: 'Package', timestamps: true }); Package.associate = function (models) { models.Package.hasMany(models.PackageCheck, { onDelete: "CASCADE", foreignKey: { allowNull: false } });

}; return Package; };` It seems that the index.js is not running in the migration process.

How to fix this error man ??