mysql - Nodejs mysql pool错误无法调用undefined的方法查询

标签 mysql node.js

尝试进行 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,我该如何纠正这个问题?

最佳答案

我建议您重新构建代码以便更好地进行调试,以便能够找出connectionpool.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/

相关文章:

php - 无法通过 eloquent 向数据库表提供数据

php - 如何使用日期无条件连接两个表?

javascript - 带有 Heroku Scheduler 的 Node.js 应用程序存在 Shebang 线路问题

javascript - 用于多用户模型的环回 Passport -facebook

node.js - 使用 Nodejs 加密进行签名/验证始终为 false

javascript - skygear/react-chat-demo app.html 不起作用

mysql - 用于关键字/频率查询的 Sphinx/Solr

mysql - 更改 Rails 中现有列的位置

javascript - 更新记录而不刷新

node.js - Firebase 服务器提示 firebase-admin 已安装但未显示