【问题标题】:node-mysql connection error for 2nd request第二个请求的node-mysql连接错误
【发布时间】:2013-09-17 11:18:17
【问题描述】:

当我运行我的 server.js 时,就像

...
var app = require('express')(), mysql = require('mysql');
var mysqlConn = mysql.createConnection(connParam);
var controllers = {mysql: require('./controller/mysql.js')(app, mysqlConn, null)};
...

和控制器/mysql.js

...
module.exports = function (app, conn, data) {
...
app.get('/mysql', mysqlController);
function mysqlController (req, res, next) {
  console.log('reached mysqlController');
  conn.connect(function (err) {
    if (!err) {
      console.log('mysql connection established');
    }
    else {
      console.log('mysql connection ERROR');
    }
  });
  conn.query('select * from users', function (err, sqlRes) {
    if (!err) {
      console.log('\tdb query success from conn');
      app.render('mysql/index.jade', {title: 'App | MySql:index', result: sqlRes},
      function (err, html) {
        console.log('\trendering mysql/index');
        res.send(html);
        conn.end(function (err) {
          console.log('mysql connection closed');
        });
      });
    }
    else {
      console.log('\tError processing query from db');
      res.send("ERROR 505");
    }
  });
}

对于第一次请求,我得到了预期的结果,但第二次,它没有连接......

:~/workspace/noder$ node server.js
Server listening to port: 8080
reached mysqlController
mysql connection established
    db query success from conn
    rendering mysql/index
mysql connection closed
reached mysqlController
mysql connection ERROR
    Error processing query from db

谁能帮帮我...

【问题讨论】:

    标签: javascript mysql node.js node-mysql


    【解决方案1】:

    这是因为您在已连接的连接上调用connect()。尝试在控制器/mysql 函数本身而不是app.get() 中调用connect()。这样connect() 只会被调用一次..

    如果它没有修复它,在你的错误控制台日志中,也打印错误console.log('mysql error', err);

    【讨论】:

      猜你喜欢
      • 2014-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多