错误处理程序是任何 Web 应用程序的重要组成部分。通过正确地处理错误,我们可以为用户提供良好的用户体验,并且可以避免不必要的日志记录和安全漏洞。
Express.js 是一个流行的 Node.js Web 应用程序框架,提供了丰富的错误处理程序。在本篇文章中,我们将探讨 Express.js 中错误处理程序的使用和示例。
错误处理程序的基础知识
在 Express.js 中,错误处理程序本质上是一个中间件函数。该函数将在应用程序发生错误时自动调用。该错误可以是任何类型的错误,包括语法错误、断言错误、运行时错误等。
在 Express.js 中,错误处理程序必须采用以下形式:
function(error, request, response, next) {}
错误处理程序接受四个参数,第一个参数是错误对象,第二个参数是请求对象,第三个参数是响应对象,第四个参数是下一个中间件函数。如果您的错误处理程序不使用所有这些参数,可以将它们省略。
在错误处理程序中,您可以执行以下三种操作之一:
- 将错误传递给下一个中间件程序
- 发送一个适当的响应
- 执行其他适当的行动,如记录错误或处理程序终止。
错误处理程序示例
现在让我们看一些错误处理程序示例。
响应 404 状态码
当用户请求了不存在的 URL 时,我们将为他们提供 404 响应。在这种情况下,我们可以使用以下代码:
app.use(function(request, response, next) { response.status(404).send("Page not found.") })
在这个例子中,我们创建一个中间件函数,这个函数将在请求不存在的 URL 时调用。该中间件函数向客户端发送一个 404 状态代码和错误消息 Page not found.
。
响应 500 状态码
当应用程序出现内部错误时,例如数据库连接失败或其他未知错误,我们需要向用户发送 500 响应。在这种情况下,我们可以使用以下代码:
app.use(function(error, request, response, next) { response.status(500).send("Something went wrong.") })
在这个例子中,我们创建一个中间件函数,该函数将在应用程序出现错误时调用。该中间件函数将向客户端发送一个 500 状态代码和错误消息 Something went wrong.
。
记录错误
除了向客户端发送响应之外,我们还可以记录错误以供以后分析。我们可以使用 console.error
函数来实现。以下是一个例子:
app.use(function(error, request, response, next) { console.error(error.stack) response.status(500).send("Something went wrong.") })
在这个例子中,我们使用 console.error
函数记录错误堆栈,然后向客户端发送一个 500 状态代码和错误消息 Something went wrong.
。
结论
正确地处理错误是任何网站的必要条件。在 Express.js 中,错误处理程序是一个重要的组成部分,您必须使用它们来处理所有可能出现的错误情况。使用本文中的示例,您可以轻松地自定义和扩展错误处理程序以符合您的应用程序需求。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66f15f906fbf9601973a53c1