解决nodejs的Connection lost: The server closed the connection

node项目在运行时出现以下报错

```javascript
events.js:292
      throw er; // Unhandled 'error' event
      ^

Error: Connection lost: The server closed the connection.
    at Protocol.end (F:\mywork\xdwlgk\node_modules\mysql\lib\protocol\Protocol.js:112:13)
    at Socket.<anonymous> (F:\mywork\xdwlgk\node_modules\mysql\lib\Connection.js:94:28)
    at Socket.<anonymous> (F:\mywork\xdwlgk\node_modules\mysql\lib\Connection.js:526:10)
    at Socket.emit (events.js:327:22)
    at endReadableNT (_stream_readable.js:1225:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
Emitted 'error' event on Connection instance at:
    at Connection._handleProtocolError (F:\mywork\xdwlgk\node_modules\mysql\lib\Connection.js:423:8)
    at Protocol.emit (events.js:315:20)
    at Protocol._delegateError (F:\mywork\xdwlgk\node_modules\mysql\lib\protocol\Protocol.js:398:10)
    at Protocol.end (F:\mywork\xdwlgk\node_modules\mysql\lib\protocol\Protocol.js:116:8)
    at Socket.<anonymous> (F:\mywork\xdwlgk\node_modules\mysql\lib\Connection.js:94:28)
    [... lines matching original stack trace ...]
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  fatal: true,
  code: 'PROTOCOL_CONNECTION_LOST'
}

报错原因

mysql自带一段时间无动作会自动关闭的机制

解决方案

```javascript
var mysql = require('mysql')

var sqlConfig = {
    host: 'localhost',
    user: 'root',
    password: 'pwd',
    database: 'dbbase'
}

var conn = function(){
    let connection = mysql.createConnection(sqlConfig)
    connection.connect()
    connection.on('error',err=>{
        console.log('Re-connecting lost connection: ');
        connection = mysql.createConnection(sqlConfig)

    })
    return function(){
        return connection
    }
}


module.exports = conn()

浏览器出现以下报错信息

无法访问此网站localhost 拒绝了我们的连接请求。
请试试以下办法:

检查网络连接
检查代理服务器和防火墙
ERR_CONNECTION_REFUSED

这是因为端口冲突或者端口错误导致的,我这里是因为端口号不对,修改端口号后成功解决。

记录在工作期间遇到的坑,如有错误,请大家更正!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值