UNPKG

1.35 kBJavaScriptView Raw
1/**
2 * models/index.js
3 * */
4
5"use strict";
6
7var fs = require("fs"),
8 path = require("path"),
9 exists = require('fs-exists-sync'),
10 Sequelize = require("sequelize"),
11 middleware = require('./middleware/index.js'),
12 paths = require('../configs/paths'),
13 config = require('../configs/config')
14
15module.exports = class {
16
17 constructor() {
18 this.middleware = new middleware();
19
20 return this.connect();
21 }
22
23 connect() {
24 if (exists(paths.app.models)) {
25 var sequelize = new Sequelize(config('database_name'), ('database_username') || ('database_user'), ('database_password'), ('database_config')),
26 db = {};
27
28 fs.readdirSync(paths.app.models)
29 .filter((file) => {
30 return (file.indexOf(".") !== 0 && file.indexOf(".mongoose.js") == -1);
31 })
32 .forEach((file) => {
33 var model = sequelize.import(path.join(paths.app.models, file));
34 db[model.name] = model;
35 });
36
37 Object.keys(db).forEach((modelName) => {
38 if ("associate" in db[modelName]) {
39 db[modelName].associate(db);
40 }
41 });
42
43 db.sequelize = sequelize;
44
45 return db;
46 }
47 return null;
48 }
49
50}