首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NodeJS在Mac上运行,在centOS上部署时出现错误

NodeJS在Mac上运行,在centOS上部署时出现错误
EN

Stack Overflow用户
提问于 2014-10-31 10:51:00
回答 1查看 8.6K关注 0票数 5

我和Node.js和MySQL有一个项目。这个项目在本地MAC osx上运行良好。但在centOS服务器上部署时发生错误。该项目有2个部分,1是与cron自动运行,自动从一个网站获取数据,并将这些数据更新到MySQL中。这部分在本地和在线服务器上都工作得很好。但另一部分不是,该部分是在浏览器上显示UI,但当访问它时,会显示一个错误。

代码语言:javascript
复制
Error: Cannot enqueue Query after fatal error.
    at Protocol._validateEnqueue (/home/xx/node_modules/mysql/lib/p rotocol/Protocol.js:193:16)
    at Protocol._enqueue (/home/xx/node_modules/mysql/lib/protocol/ Protocol.js:129:13)
    at Connection.query (/home/xx/node_modules/mysql/lib/Connection .js:185:25)
    at SessionStore.get (/home/xx/node_modules/express-mysql-sessio n/lib/index.js:92:18)
    at session (/home/xx/node_modules/express-session/index.js:348: 11)
    at Layer.handle [as handle_request] (/home/xx/node_modules/expr ess/lib/router/layer.js:82:5)
    at trim_prefix (/home/xx/node_modules/express/lib/router/index. js:270:13)
    at /home/xx/node_modules/express/lib/router/index.js:237:9
    at Function.proto.process_params (/home/xx/node_modules/express /lib/router/index.js:312:12)
    at /home/xx/node_modules/express/lib/router/index.js:228:12

(这个错误同时显示在控制台日志和浏览器上,项目在那之后仍然在运行,所以我猜这是来自MySQL)。

这是sql连接文件:简单的是

代码语言:javascript
复制
var config = require('./config');
var mysql = require('mysql'),
    host = config.hostName,
    user = config.databaseUser,
    password = config.databasePassword,
    database = config.databaseName;

module.exports =  mysql.createPool({
  connectionLimit : 10,
  host: host,
  user: user,
  password: password,
  database: database
});

我是这样称呼它的:

代码语言:javascript
复制
imgExport.selectLast = function(callback){
  conn.getConnection(function(err,conn) {
    querySelectLast15Secon = "SELECT * FROM image WHERE year(moderate_time) = year(curdate()) AND month(moderate_time) = month(curdate()) AND (time(moderate_time) >= (curtime() - 15));";
    conn.query(querySelectLast15Secon, function (err, rows, fields) {
      if (err) throw err;
      callback(rows);
      conn.release();
    })
  });
};

我在调试代码之前使用了console.dir(conn.threadId),它是这样打印的,那么这是什么意思呢?(每个数字以行为单位)

6177 6180 6181 6184 6183 6185 6176 6178 6179 6177 6183 6184 6185 6182 6180 6177 6176 6181 6183

EN

回答 1

Stack Overflow用户

发布于 2014-10-31 11:28:38

修复了!问题来自express-sql-session!我从代码中删除了它,它工作得很好。所以我想我需要在这里为他们报告这个问题:

https://github.com/chill117/express-mysql-session/issues

我认为该模块中的connection.end()有一些问题。不知道在哪里,但也许应该花点时间去找出来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26666852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档