我有一个使用 Node.js 和 MySQL 的项目。该项目在本地 MAC osx 上运行良好。但是在centOS服务器上部署时出现错误。该项目有 2 部分,1 是使用 cron 自动运行,即从一个网络自动获取数据,并将此数据更新到 MySQL。这部分在本地和在线服务器上都可以正常工作。但是另一部分不是,那部分是在浏览器上显示UI,但是在访问它时会显示错误。
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
Run Code Online (Sandbox Code Playgroud)
(此错误显示在控制台日志和浏览器上,此后项目仍在运行,所以我猜这来自 MySQL)。
这是sql连接文件:simple is
var config = require('./config');
var mysql = require('mysql'),
host = config.hostName,
user = config.databaseUser,
password = config.databasePassword, …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个Node + Express来提供REST服务。应用程序启动时一切顺利。
然而,几个小时后,我收到一个错误:“code”:“PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR”,“fatal”:false。看来有些资源即将耗尽。有人知道如何修复它吗?
这是代码的主要部分:
var mysql = require("mysql");
var _ = require('underscore')
var Q = require("q");
function REST_ROUTER(router,connection,md5) {
var self = this;
self.handleRoutes(router,connection,md5);
}
var queryWithPromise = function (connection, query) {
var deferred = Q.defer();
connection.query(query, function(err, rows, fields) {
if (err) {
deferred.reject(err);
};
if (!rows||(rows.length === 0)) {
deferred.reject("No record!");
}
deferred.resolve(rows);
});
return deferred.promise;
};
REST_ROUTER.prototype.handleRoutes = function(router,connection,md5) {
var self = this;
router.get("/",function(req,res){
res.json({"Message" : "Hello World !"});
});
router.get("/data/:token/:latlng",function(req,res){
//console.log(req.params.token);
query = mysql.format("SELECT …Run Code Online (Sandbox Code Playgroud)