WishMeLz

生活其实很有趣

Nodejs,Mysql连接出错

const connection = mysql.createConnection(db)

长时间不操作mysql,会自动关闭连接,导致服务中断。

修改为:使用连接池
const connection = mysql.createPool(db)

const mysql = require('mysql');
const config = require('./config')
const conn = mysql.createPool(config.db);
var queryDB = function(qry, cb) {
    conn.getConnection(function(error, connection) {
        if(error) {
            cb(error, null);
        }
        else {
            connection.query(qry, function (e, rows) {
                connection.destroy();
                cb(e, rows);
            });
        }
    });
}

module.exports = queryDB;

项目使用了conn.query的情况下

var queryDB = {
    query: function (qry, data, cb) {
        conn.getConnection(function (error, connection) {
            if (error) {
                cb(error, null);
            }
            else {
                if (data) {
                    connection.query(qry, data, function (e, rows) {
                        connection.destroy();
                        cb(e, rows);
                    });
                } else {
                    connection.query(qry, function (e, rows) {
                        connection.destroy();
                        cb(e, rows);
                    });
                }

            }
        });
    }
}