Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用池处理node.js mysql中的错误和断开连接_Node.js_Connection Pooling_Node Mysql - Fatal编程技术网

使用池处理node.js mysql中的错误和断开连接

使用池处理node.js mysql中的错误和断开连接,node.js,connection-pooling,node-mysql,Node.js,Connection Pooling,Node Mysql,我使用node.js npm模块mysql连接mysql数据库 我认为有可能使用: pool.getConnection()、connection.query()和connection.release()中的任意一个 或pool.query 关于第二种情况,我有两个问题 1) 在使用pool.query时,如果出现错误或连接丢失,是否会自动重新连接?(使用池时是否需要“句柄断开”功能 2) 使用第一种方法,我可以设置connection.on('error',function(){…})。在

我使用node.js npm模块mysql连接mysql数据库

我认为有可能使用:

  • pool.getConnection()、connection.query()和connection.release()中的任意一个
  • 或pool.query
关于第二种情况,我有两个问题

1) 在使用pool.query时,如果出现错误或连接丢失,是否会自动重新连接?(使用池时是否需要“句柄断开”功能

2) 使用第一种方法,我可以设置connection.on('error',function(){…})。在第二种情况下如何做到这一点?(pool.on('error'…)?)

1)如果我错了,请纠正我,但我认为在使用pool查询时,没有一种断开连接时自动连接的方法。这是一个很好的代码设计,让我们知道错误,并让我们决定在断开连接时做什么

2) 我们可以使用
pool.getConnection((err,con)=>{})

下面是我用来在运行查询之前检查连接的代码。希望能有帮助

connect: function ()
    {
        return new Promise((resolve, reject) => {
            let pool = Mysql.createPool({
                connectionLimit: config.mysql.connectionLimit,
                host: config.mysql.host,
                user: config.mysql.user,
                password: config.mysql.password,
                database: config.mysql.database
            });

            pool.getConnection((err, con) =>
            {
                try
                {
                    if (con)
                    {
                        con.release();
                        resolve({"status":"success", "data":"MySQL connected.", "con":pool});
                    }
                }
                catch (err)
                {
                    reject({"status":"failed", "error":`MySQL error. ${err}`});
                }
                resolve({"status":"failed", "error":"Error connecting to MySQL."});
            });
        });
    }