尝试进行 mysql 池化,但我陷入了 connection.query 部分。
var express = require('express');
var app = express();
var mysql = require('mysql');
app.use(express.static(__dirname));
var pool = mysql.createPool({
host : 'localhost',
user : 'asdf',
password : 'asdf',
database : 'cr',
connectionLimit : 100
});
app.get('/', function(request, response) {
pool.getConnection(function(err,connection){
connection.query("select * from configuration where client_id =" + request.user,function(err,rows){
connection.release();
if(!err) {
response.json(rows);
}
});
connection.on('error', function(err) {
response.json({"code" : 100, "status" : "Unable to connect"});
return;
});
connection.release();
});
});
由于连接显示为空,它似乎停止在connection.query,我该如何纠正这个问题?
最佳答案
我建议您重新构建代码以便更好地进行调试,以便能够找出connection
在pool.getConnection
中显示为空的原因> 回调函数。
通常,在处理响应之前,最好在回调函数中验证您是否获得了有效的响应。
就您而言,第一步是检查err
。您还应该检查connection
是否存在以及可选的其属性,例如query
。我建议使用以下方法来调试您的问题:
pool.getConnection(function(err, connection) {
if (err) {
console.log(err);
} else if (connection && 'query' in connection) {
// process connection and connection.query
}
}
关于mysql - Nodejs mysql pool错误无法调用undefined的方法查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30518248/