index.js 975 B

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