📜  ExpressJS-错误处理(1)

📅  最后修改于: 2023-12-03 14:41:05.335000             🧑  作者: Mango

ExpressJS-错误处理

在开发Web应用程序时,出现错误是难免的。ExpressJS提供了一种错误处理机制来处理Web应用程序中的异常情况。

错误处理中间件

错误处理中间件是专门用来处理应用程序中的错误。使用app.use()函数调用错误处理中间件。下面是一个简单的错误处理中间件示例:

app.use(function (err, req, res, next) {
  console.error(err.stack)
  res.status(500).send('Something broke!')
})

如果应用程序中的任何路由或中间件调用next(err)函数并传递了错误,ExpressJS将自动调用错误处理中间件。

Error对象

当应用程序中有错误时,会创建一个Error对象。该对象包含有关错误的信息,例如错误的名称,消息和堆栈跟踪。

在ExpressJS中,错误处理中间件可以访问Error对象。下面是一个错误处理中间件,它将错误信息打印到控制台:

function errorHandler(err, req, res, next) {
  console.error(err.stack);
  res.status(500).json({ message: err.message });
}

在上面的代码中,错误处理中间件首先使用console.error()函数将错误消息打印到控制台。然后,它将错误信息作为JSON对象发送回客户端。

自定义错误处理

您可以编写自己的错误处理程序,以处理特定类型的错误。例如,您可以编写一个处理404错误的函数:

function handle404Error(req, res, next) {
  const err = new Error('File not found')
  err.statusCode = 404
  next(err)
}

在上面的代码中,我们创建了一个新的错误对象,并将其状态代码设置为404。然后,调用next()函数,将错误对象传递给错误处理中间件。

您可以编写任意数量的自定义错误处理程序,以处理应用程序中可能遇到的所有错误。

结论

错误处理对于开发Web应用程序非常重要。使用ExpressJS,您可以轻松地编写错误处理中间件来处理应用程序中的异常情况。无论是使用默认错误处理中间件还是编写自己的错误处理程序,ExpressJS都提供了灵活的错误处理机制。