index.js 871 B

12345678910111213141516171819202122232425262728293031323334353637
  1. const fs = require('fs');
  2. const path = require('path');
  3. const Sequelize = require('sequelize');
  4. const basename = path.basename(module.filename);
  5. const config = require('../config/config.json');
  6. const env = process.env.NODE_ENV || 'development';
  7. const db = {};
  8. let sequelize = new Sequelize(
  9. config[env].database, config[env].username, config[env].password, {
  10. host: config[env].host,
  11. dialect: config[env].dialect,
  12. logging: false
  13. }
  14. );
  15. fs
  16. .readdirSync(__dirname)
  17. .filter(file =>
  18. (file.indexOf('.') !== 0) &&
  19. (file !== basename) &&
  20. (file.slice(-3) === '.js'))
  21. .forEach(file => {
  22. const model = sequelize.import(path.join(__dirname, file));
  23. db[model.name] = model;
  24. });
  25. Object.keys(db).forEach(modelName => {
  26. if (db[modelName].associate) {
  27. db[modelName].associate(db);
  28. }
  29. });
  30. db.sequelize = sequelize;
  31. db.Sequelize = Sequelize;
  32. module.exports = db;