index.js 988 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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 config = require('../config/config.json')[
  7. process.env.NODE_ENV || 'development'
  8. ]
  9. const db = {}
  10. let sequelize
  11. if (config.use_env_variable) {
  12. sequelize = new Sequelize(process.env[config.use_env_variable], config)
  13. } else {
  14. sequelize = new Sequelize(
  15. config.database,
  16. config.username,
  17. config.password,
  18. config
  19. )
  20. }
  21. fs.readdirSync(__dirname)
  22. .filter((file) => {
  23. return (
  24. file.indexOf('.') !== 0 && file !== basename && file.slice(-3) === '.js'
  25. )
  26. })
  27. .forEach((file) => {
  28. const model = require(path.join(__dirname, file))(
  29. sequelize,
  30. Sequelize.DataTypes
  31. )
  32. db[model.name] = model
  33. })
  34. Object.keys(db).forEach((modelName) => {
  35. if (db[modelName].associate) {
  36. db[modelName].associate(db)
  37. }
  38. })
  39. db.sequelize = sequelize
  40. db.Sequelize = Sequelize
  41. module.exports = db