【发布时间】:2020-05-04 09:08:41
【问题描述】:
我已经使用 mysql 数据库创建了 express 应用程序。 当我调用 mysql 查询时它工作正常,然后我调用我的视图。加载视图需要几分钟(2-3 分钟),应用程序因以下错误而崩溃。
events.js:287 投掷者; // 未处理的“错误”事件 ^
错误:读取 ECONNRESET 在 TCP.onStreamRead (internal/stream_base_commons.js:205:27) 在 Connection 实例上发出“错误”事件: 在 Connection._handleProtocolError (C:\Users\AMW\Desktop\dishmize\dishmize\node_modules\mysql\lib\Connection.js:423:8) 在 Protocol.emit (events.js:310:20) 在 Protocol.EventEmitter.emit (domain.js:482:12) 在 Protocol._delegateError (C:\Users\AMW\Desktop\dishmize\dishmize\node_modules\mysql\lib\protocol\Protocol.js:398:10) 在 Protocol.handleNetworkError (C:\Users\AMW\Desktop\dishmize\dishmize\node_modules\mysql\lib\protocol\Protocol.js:371:10) 在 Connection._handleNetworkError (C:\Users\AMW\Desktop\dishmize\dishmize\node_modules\mysql\lib\Connection.js:418:18) 在 Socket.emit (events.js:310:20) 在 Socket.EventEmitter.emit (domain.js:482:12) 在 emitErrorNT (internal/streams/destroy.js:92:8) 在 emitErrorAndCloseNT (internal/streams/destroy.js:60:3) { 错误号:'ECONNRESET', 代码:'ECONNRESET', 系统调用:'读', 致命:真实 } [nodemon] 应用程序崩溃 - 启动前等待文件更改...
我已经花了 8-10 个小时。 请帮我解决这个问题。 谢谢
更新:
const options = {
user: config.get('MYSQL_USER'),
password: config.get('MYSQL_PASSWORD'),
database:config.get('DATABASE'),
host: config.get('HOST'),
port: 3306
}
const connection = mysql.createConnection(options);
connection.connect( function (err) {
if (err) {
console.log("!!! Cannot connect !!! Error:"); throw err;
} else {
console.log("Connection established.");
}
});
【问题讨论】:
-
创建一个连接池而不是单个连接。
-
请分享您的 MySQL 连接代码 sn-p。
-
const options = { 用户:config.get('MYSQL_USER'),密码:config.get('MYSQL_PASSWORD'),数据库:config.get('DATABASE'),主机:config.get ('HOST'), 端口:3306 } const connection = mysql.createConnection(options); connection.connect( function (err) { if (err) { console.log("!!! 无法连接 !!! Error:"); throw err; } else { console.log("Connection established."); } });
标签: mysql node.js database-connection unhandled-exception