index.js 836 B

123456789101112131415161718192021222324252627282930313233343536
  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;
  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. }
  13. );
  14. fs
  15. .readdirSync(__dirname)
  16. .filter(file =>
  17. (file.indexOf('.') !== 0) &&
  18. (file !== basename) &&
  19. (file.slice(-3) === '.js'))
  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;