在一系列pool.getConnection上使用池连接导致节点mysql2错误

时间:2018-06-26 11:44:42

标签: node-mysql2

我有一个节点应用程序,并将连接转换为使用池连接以获得更好的连接性能。但是在调用一系列连接请求时遇到错误。像下面的代码。

pool.getConnection(function(err, connection) {
    connection.query(insertQuery1, function (err, result) { 
        connection.release();
        if (err) throw err;     
    }); 
});

pool.getConnection(function(err, connection) {
    connection.query(insertQuery2, function (err, result) {
        connection.release(); 
        if (err) throw err;     
    }); 
});

pool.getConnection(function(err, connection) {
    connection.query(insertQuery3, function (err, result) { 
        connection.release();
        if (err) throw err;     
    }); 
});

pool.getConnection(function(err, connection) {
    connection.query(insertQuery4, function (err, result) {
        connection.release(); 
        if (err) throw err;     
    }); 
});

pool.getConnection(function(err, connection) {
    connection.query(insertQuery5, function (err, result) {
        connection.release(); 
        if (err) throw err;     
    }); 
});

我正在使用mysql2并将connectionLimit设置为10。在我的其他代码池中,连接工作正常。就在我像上面的示例那样执行代码时。 我收到的错误是

Error: You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near '?, 
?)' at line 1
at Packet.asError 
(/home/ubuntu/node_modules/mysql2/lib/packets/packet.js:713:13)
at Query.Command.execute 
(/home/ubuntu/node_modules/mysql2/lib/commands/command.js:28:22)
at PoolConnection.Connection.handlePacket 
(/home/ubuntu/node_modules/mysql2/lib/connection.js:502:28)
at PacketParser.onPacket 
(/home/ubuntu/node_modules/mysql2/lib/connection.js:81:16)
at PacketParser.executeStart 
(/home/ubuntu/node_modules/mysql2/lib/packet_parser.js:77:14)
at Socket.<anonymous> 
(/home/ubuntu/node_modules/mysql2/lib/connection.js:89:29)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)

可以使用本机承诺来解决。并释放Promise.all内部的连接。我只是想知道为什么我不能做上面的代码。如果池中没有可用的连接。它不应引发错误。请求应该只等待下一个可用的连接。

0 个答案:

没有答案