Properly passing objects between my applications models/modules

Discussion in 'JavaScript' started by loki781, Aug 29, 2019.

  1. #1
    I have several models/modules such as User, Wallet, both these modules that are called from the express application such as User.login(req,res);

    right now in each User.js and Wallet.js I am including database.js which looks like this:

    
    var mysql = require('mysql2/promise')
    var pool = mysql.createPool({
        connectionLimit: 10,
        host: 'localhost',
        user: 'x',
        password: 'x',
        database: 'x'
    });
    pool.getConnection((err, connection) => {
        if (err) {
            if (err.code === 'PROTOCOL_CONNECTION_LOST') {
                console.error('Database connection was closed.')
            }
            if (err.code === 'ER_CON_COUNT_ERROR') {
                console.error('Database has too many connections.')
            }
            if (err.code === 'ECONNREFUSED') {
                console.error('Database connection was refused.')
            }
        }
        if (connection) connection.release()
        return
    })
    module.exports = pool
    
    
    Code (markup):
    then in User.login() I can use pool.query/pool.execute.

    My question is there a better way of including this instead of require('./database.js) in both User.js and Wallet.js? Ideally calling database.js in my app.js main application file and having pool be visible to modules I include like User.js and Wallet.js
     
    loki781, Aug 29, 2019 IP