Javascript 有人知道为什么这个错误会在几分钟后再次发生吗

Javascript 有人知道为什么这个错误会在几分钟后再次发生吗,javascript,node.js,npm,https,nodemon,Javascript,Node.js,Npm,Https,Nodemon,我使用nodemonnpm包在检测到目录中的文件更改时自动重新启动节点应用程序。 服务器是使用express和http npm包创建的。 问题是,当服务器空闲几分钟时,它会抛出错误:read ECONNRESET 实际误差如下: events.js:167 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET at TCP.onStreamRead (internal/stream_base_c

我使用nodemonnpm包在检测到目录中的文件更改时自动重新启动节点应用程序。 服务器是使用express和http npm包创建的。 问题是,当服务器空闲几分钟时,它会抛出错误:read ECONNRESET 实际误差如下:

events.js:167
      throw er; // Unhandled 'error' event
      ^
Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:111:27)
Emitted 'error' event at:
    at Connection._handleProtocolError (/home/abc/node_modules/mysql/lib/Connection.js:425:8)
    at Protocol.emit (events.js:182:13)
    at Protocol._delegateError (/home/abc/node_modules/mysql/lib/protocol/Protocol.js:390:10)
    at Protocol.handleNetworkError (/home/abc/node_modules/mysql/lib/protocol/Protocol.js:363:10)
    at Connection._handleNetworkError (/home/abc/node_modules/mysql/lib/Connection.js:420:18)
    at Socket.emit (events.js:182:13)
    at emitErrorNT (internal/streams/destroy.js:82:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
    at process._tickCallback (internal/process/next_tick.js:63:19)
我试图抓住错误,但这并不能解决我的问题

process.on('uncaughtException', function(err) {  
   console.log("uncaughtException called: \n", err);
})
服务器是使用express和http创建的:

express = require('express');
app = express();
http = require('http');
var httpServer = http.createServer(app);
httpServer.listen(3000, function(req, res) {
    console.log('Server running at port 3000);
});
我希望防止服务器发生EconReset错误
解决方案是什么?

我们可以看到这是一个基于抛出错误的mysql问题:

Emitted 'error' event at:
at Connection._handleProtocolError (/home/abc/node_modules/mysql/lib/Connection.js:425:8)
我也遇到了同样的问题,我修复这个问题的方法是在连接到数据库之后,我每20分钟添加一个setInterval,执行一个简单的查询,比如db.query('SELECT 1;')。假定mysql会在空闲时间后关闭连接,因此基于此

“模块开发人员建议使用心跳来保持连接处于活动状态,例如每隔一段时间调用SELECT 1;。”

这是一个快速解决方案,对我来说很有效,但如果你想找到一种不同的方式,我建议你阅读上面的文章,因为还有其他解决方案