Express框架中的错误处理

本文详细介绍了如何在Express框架中处理错误,包括uncaughtException可能导致的Node.js宕机情况,使用错误处理函数作为中间件来捕获和管理错误,以及next()函数的不同用法,确保程序稳定运行。
摘要由CSDN通过智能技术生成

Whichever method you use, if you want Express error handlers to be called in and the application to survive, you must ensure that Express receives the error.

Express官方文档中提到,要确保你的Express程序在遇到错误的时候不会宕机,就得确保Express能接收到程序抛出的错误。

uncaughtException导致的node宕机

如上所说,Express程序必须手动处理所有可能抛出的错误才不会发生宕机,或者说降低宕机的风险,这和node是息息相关的,毕竟Express是基于Nodejs的,在node中,在遇到uncaughtException时会直接结束node进程,之前写过一篇文章

Promise的UnhandledPromiseRejectionWarning问题

就是提到的node的这个特性,对Promise对象没有用.catch()来捕捉错误就会使node可能宕机。

当然了我们可以用pm2或者forever之类的node进程管理工具来管理重启和记录错误,这样也更利于我们之后对程序进行修复。

但是,在运行过程中,我们还是更希望我们的程序宕机的次数越少越好,如果我们的程序的Session是存储在内存中的,那么程序宕机重启之后,所有的用户登录状态也将不复存在。

Error Handler 错误处理函数

Express框架内置了一个错误处理函数(Error Handler),这个函数是以中间件(MiddleWare)的形式来使用的,只不过这个中间件和其他的中间件稍微不一样,那就是错误处理函数接受4个参数,比常规中间件多了接收错误的参数err

app.use(function(err, req, res, next) {
   
  // 处理错误
}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值