How to provide a mysql database connection in single file in nodejs

前端 未结 6 630
一整个雨季
一整个雨季 2020-12-04 08:42

I need to provide the mysql connection for modules. I have a code like this.

var express = require(\'express\'),
app = express(),
server = require(\'http\').         


        
6条回答
  •  日久生厌
    2020-12-04 09:38

    var mysql = require('mysql');
    
    var pool  = mysql.createPool({
        host     : 'yourip',
        port    : 'yourport',
        user     : 'dbusername',
        password : 'dbpwd',
        database : 'database schema name',
        dateStrings: true,
        multipleStatements: true
    });
    
    
    // TODO - if any pool issues need to try this link for connection management
    // https://stackoverflow.com/questions/18496540/node-js-mysql-connection-pooling
    
    module.exports = function(qry, qrytype, msg, callback) {
    
    if(qrytype != 'S') {
        console.log(qry);
    }
    
    pool.getConnection(function(err, connection) {
        if(err) {
            if(connection)
                connection.release();
            throw err;
        } 
    
        // Use the connection
        connection.query(qry, function (err, results, fields) {
            connection.release();
    
            if(err) {
                callback('E#connection.query-Error occurred.#'+ err.sqlMessage);    
                return;         
            }
    
            if(qrytype==='S') {
                //for Select statement
                // setTimeout(function() {
                    callback(results);      
                // }, 500);
            } else if(qrytype==='N'){
                let resarr = results[results.length-1];
                let newid= '';
                if(resarr.length)               
                    newid = resarr[0]['@eid'];
                callback(msg + newid);
            } else if(qrytype==='U'){
                //let ret = 'I#' + entity + ' updated#Updated rows count: ' + results[1].changedRows;
                callback(msg);                      
            } else if(qrytype==='D'){
                //let resarr = results[1].affectedRows;
                callback(msg);
            }
        });
    
        connection.on('error', function (err) {
            connection.release();
            callback('E#connection.on-Error occurred.#'+ err.sqlMessage);   
            return;         
        });
    });
    

    }

提交回复
热议问题