litebb/models/index.js

1"use strict"; 2 3const fs = require("fs"); 4const path = require("path"); 5const Sequelize = require("sequelize"); 6const basename = path.basename(__filename); 7const env = process.env.NODE_ENV || "development"; 8const config = require(__dirname + "/../config/app.js")[env]; 9const db = {}; 10 11let sequelize; 12if (config.use_env_variable) { 13 sequelize = new Sequelize(process.env[config.use_env_variable], config); 14} else { 15 sequelize = new Sequelize( 16 config.database, 17 config.username, 18 config.password, 19 config, 20 ); 21} 22 23fs.readdirSync(__dirname) 24 .filter((file) => { 25 return ( 26 file.indexOf(".") !== 0 && file !== basename && file.slice(-3) === ".js" 27 ); 28 }) 29 .forEach((file) => { 30 // const model = sequelize['import'](path.join(__dirname, file)); 31 const model = require(path.join(__dirname, file))( 32 sequelize, 33 Sequelize.DataTypes, 34 ); 35 db[model.name] = model; 36 }); 37 38Object.keys(db).forEach((modelName) => { 39 if (db[modelName].associate) { 40 db[modelName].associate(db); 41 } 42}); 43 44db.sequelize = sequelize; 45db.Sequelize = Sequelize; 46 47module.exports = db;