Estoy usando Sequelize con NodeJs. Necesito conectarme a la base de datos localhost que está en el entorno de prueba y no en el entorno de desarrollo.
NODE_ENV= test se define en el archivo .env y uso la biblioteca dotenv.
En el index.js de mi modelo:
'use strict'; require('dotenv').config(); 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 = {}; let sequelize; if (config.use_env_variable) { sequelize = new Sequelize(process.env[config.use_env_variable], config); } 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 = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes); db[model.name] = model; }); Object.keys(db).forEach(modelName => { if (db[modelName].associate) { db[modelName].associate(db); } }); db.sequelize = sequelize; db.Sequelize = Sequelize; module.exports = db;Pero cuando intento conectarme a la base de datos, obtengo lo siguiente:
Loaded configuration file "config\config.json"
Usando el development entorno:
ERROR: Access denied for user 'root'@'localhost' (using password: NO) Lo que significa que no está leyendo el env correcto.
¿Porqué es eso?
Tenga en cuenta que depuré el código y me aseguré de que la configuración esté leyendo el JSON de prueba con el paso correcto