在Windows PowerShell中运行Node.js时出现连接查询问题,我需要一些调试帮助。
下面的runsql函数可以运行很多次(也许数万次)而没有任何问题。突然,它只会挂起,并且在控制台日志(console.log(“发生的最后一件事情”);)之后什么也不做。似乎在connection.query内部或使用catch均未击中任何错误。 显然,因为它是在承诺中,不会达到解决/拒绝的目的,所以该脚本什么也不做。我在解决所有错误的方法上遇到了麻烦。
如果我给它一个晦涩的sql字符串,则连接查询将陷入错误。
任何想法/帮助将不胜感激。
pool = mysql.createPool({
host : config[environment].dbhost,
user : config[environment].dbuser,
password : config[environment].dbpassword,
database : config[environment].dbname,
connectionLimit: 20,
waitForConnections: false
});
async function connect() {
return new Promise((resolve) => {
pool.getConnection(function(err, connection) {
if (err) {
console.log(err);
responseSuccess.message ="failure with connection";
}
pool.on('end', function () {
console.log("************* LOST CONNECTION!!! *************");
connection.release();
});
resolve(connection);
});
});
}
async function runTestFunction() {
return await runSQL(connection, sql);
}
async function runSQL (connection, sql) {
return new Promise((resolve, reject) => {
try {
console.log("last thing that happens");
connection.query(sql, function (err, result) {
if (err) {
console.log("*** Error With Sql: " + sql + " ***");
reject();
}
resolve(result);
});
} catch (err) {
console.log("**** Error With Sql: " + sql + " ****");
reject();
}
});
}
runTestFunction();