'use strict'; const camelCase = require('camelcase'); 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('../config/config.js')[env]; const db = {}; const sequelize = new Sequelize(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)); const modelName = camelCase(model.name); db[modelName] = model; }); Object.keys(db).forEach(modelName => { if (db[modelName].associate) { db[modelName].associate(db); } }); db.sequelize = sequelize; db.Sequelize = Sequelize; module.exports = db;