index.js 973 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. if(env === 'production') {
  9. var sequelize = new Sequelize(process.env.DATABASE_URL)
  10. } else {
  11. var sequelize = new Sequelize(
  12. config[env].database, config[env].username, config[env].password, {
  13. host: config[env].host,
  14. dialect: config[env].dialect,
  15. logging: false
  16. }
  17. );
  18. }
  19. fs
  20. .readdirSync(__dirname)
  21. .filter(file =>
  22. (file.indexOf('.') !== 0) &&
  23. (file !== basename) &&
  24. (file.slice(-3) === '.js'))
  25. .forEach(file => {
  26. const model = sequelize.import(path.join(__dirname, file));
  27. db[model.name] = model;
  28. });
  29. Object.keys(db).forEach(modelName => {
  30. if (db[modelName].associate) {
  31. db[modelName].associate(db);
  32. }
  33. });
  34. db.sequelize = sequelize;
  35. db.Sequelize = Sequelize;
  36. module.exports = db;