2weekmail/api/db/db.js
2025-03-19 19:56:57 -05:00

26 lines
707 B
JavaScript

const { Model } = require('objection');
const Knex = require('knex');
const path = require('path');
const fs = require('fs');
require('dotenv').config();
const dbConfig = require(path.resolve(process.env.ROOT_PATH, './knexfile'))[process.env.NODE_ENV];
const knex = Knex(dbConfig);
const modelPath = path.resolve(process.env.ROOT_PATH, './db/models');
Model.knex(knex);
const db = {
knex,
Model,
models: {}
};
fs.readdirSync(modelPath)
.filter(file => file.endsWith('.js') && !file.startsWith('BaseModel'))
.forEach(file => {
const modelName = file.split('.')[0];
const ModelClass = require(path.join(modelPath, file));
db.models[modelName] = ModelClass;
});
module.exports = db;