我的node.js应用程序一直崩溃。它是一个从mysql数据库获取数据的简单Web服务。我每天得到大约20k到30k的查询。我不确定它是否会崩溃,因为我需要提供更多资源或者我的代码有问题。它是在AppFog中托管的,这是崩溃日志。
我不确定什么是大麻包,但是我尝试使用' npm install hashish'并没有解决问题。
有什么想法吗?
C:\Users\Tom\\nodejs>af crashlogs TomsApp
====> /logs/staging.log <====
# Logfile created on 2013-02-05 00:53:01 +0000 by logger.rb/25413
Installing dependencies. Node version 0.8.14
Installing mysql@mysql@0.9.6 from local path
Installing hashish@hashish@0.0.4 from registry
Package is not found in npm registry hashish@hashish@0.0.4
Failed getting the requested package: hashish@hashish@0.0.4
Installing require-all@require-all@0.0.5 from local path
====> /logs/stderr.log <====
events.js:71
throw arguments[1]; // Unhandled 'error' event
^
Error: Connection lost: The server closed the connection.
at Protocol.end (/mnt/var/vcap.local/dea/apps/ta-0-365d7313671d4e40105a4d158
f1247d5/app/node_modules/mysql/lib/protocol/Protocol.js:63:13)
at Socket.onend (stream.js:66:10)
at Socket.EventEmitter.emit (events.js:126:20)
at TCP.onread (net.js:417:51)
答案 0 :(得分:1)
我会说mysql服务器拒绝连接可能你想查看那个
答案 1 :(得分:1)
你是如何得到你的联系的?您是获得一次,还是为每个请求获取一个新请求,然后将其返回到池中?该池应该处理场景后面的陈旧连接。
var mysql = require('mysql');
var pool = mysql.createPool({
host : 'example.org',
user : 'bob',
password : 'secret'
});
// for each request where you need the database connection, wrap it with
pool.getConnection(function(err, connection) {
// do something with connection here
...
connection.end();
});
答案 2 :(得分:0)
您可能必须在套接字(http://nodejs.org/api/net.html#net_event_error_1)上处理所有连接的错误事件。
这样可以防止崩溃,然后您应该看到实际问题。