Your IP : 216.73.216.48


Current Path : /hdd/hdd21/my5/backup/my5-backend/src/
Upload File :
Current File : /hdd/hdd21/my5/backup/my5-backend/src/db.js

const mysql = require('mysql');
const dotenv = require('dotenv');
dotenv.config();

const pool = mysql.createPool({
  connectTimeout: 20,
  connectionLimit: 8,
  host: process.env.DB_HOST,
  database: process.env.DB_NAME,
  user: process.env.DB_USERNAME,
  password: process.env.DB_PASSWORD,
  port: process.env.DB_PORT,
  ...(!!process.env.DB_SOCKET_PATH && {socketPath: process.env.DB_SOCKET_PATH})
});

module.exports = {
  query: function () {
    const queryArgs = Array.prototype.slice.call(arguments),
        events = [],
        eventNameIndex = {};

    pool.getConnection((err, conn) => {
        if (err) {
            if (eventNameIndex.error) {
                eventNameIndex.error();
            }
        }
        if (conn) { 
            const q = conn.query.apply(conn, queryArgs);
            q.on('end', () => {
                conn.release();
            });

            events.forEach((args) => {
                q.on.apply(q, args);
            });
        }
    });

    return {
        on: (eventName, callback) => {
            events.push(Array.prototype.slice.call(arguments));
            eventNameIndex[eventName] = callback;
            return this;
        }
    };
  }
};