微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何处理 MySQLStore 连接错误?

如何解决如何处理 MySQLStore 连接错误?

我在 Express 中使用 NodeJS。我将会话存储到 MysqLStore (express-MysqL-session) 我的问题是如何处理连接错误?当它无法连接时,我想向用户呈现页面而不是“错误:在 TCPConnectWrap.afterConnect [as oncomplete] (node:net:1137:16) ..... 连接 ECONNREFUSED 127.0.0.1:3306 " 消息。

我的代码

const MysqLStore = require('express-MysqL-session')(session);
(....)
app.use(session({
  secret: 'something',resave: false,saveUninitialized: false,store: new MysqLStore({
    host: something,user: something,password: something,database: something
  }),cookie: {
    maxAge: 7 * 24 * 60 * 60 * 1000
  }
}));

使用简单的 MysqLjs 我可以轻松完成,因为当我使用 connection.query 时,有一个 (error,result) => { ... } 我可以处理错误,但在这MysqLStore 我不知道如何处理连接错误

解决方法

解决了,Express 错误处理程序中间件也可以捕获此错误。 只需将其粘贴到 app.listen 之前的应用程序末尾即可。

app.use((error,req,res,next) => {
  res.status(error.status || 500).render('error',{ 
    msg: 'Please check back later!'
  });
});

注意下一个参数即使我们不使用它也是需要的,因为错误处理函数在 express 中有四个参数。如果删除它,它将不起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。