您好我是nodejs的新手,并尝试连接Mysql。
我真的很容易犯错误致命错误后无法排队查询。
a)我没有使用连接池,以免开始复杂化
b)我在代码开头写了connection.connect(),但是当我读到不需要的链接时将其删除。 (参见下面的链接)
Cannot enqueue Handshake after invoking quit
以下是我所有查询的格式。
function matchFirstName(person_name){
var query = "select firstName,lastname, username,securityRole from users where firstName='"+person_name+"'" ;
connection.query(query,
function (err, rows) {
if (err || rows.length === 0) {
if(err){
console.log("error " + err);
connection.end();
}
}
else{
// some code or call to a different function which too might call a query in the same manner
}
});
}
有人请建议永久解决这个问题。
我已经尝试从我的代码中删除connection.end(),但这也没有帮助。突然出现此错误。
更新: 我想我找到了原因。首先,我使用的一些查询(通常正常运行的查询)会出现 ETIMEDOUT 问题,然后每个后续查询都会失败。 我将connectTimeout从60000增加到120000毫秒,并添加了以下代码。
connection.on('error', function (err){
if(err.code === 'ETIMEDOUT' ){
connection.connect();
}
});
这会解决我的问题吗?