前言
作为前端开发者,我们经常会遇到 HTTP 状态码为 404 的情况,这是因为我们请求的资源并不存在于服务器上。如何在 Express.js 中处理 404 错误,是我们需要掌握的一项技能。在本篇文章中,我将详细介绍如何在 Express.js 中处理 404 错误,并提供相应的示例代码。
Express.js 中的 404 错误
在 Express.js 中,我们可以通过 app.use()
方法来处理 404 错误。这个方法可以注册一个中间件函数,将其作为默认的处理程序。
app.use(function(req, res, next) { res.status(404).send("Sorry, we can't find that!") })
上述代码中,当我们在服务器上请求一些不存在的资源时,它将会返回 404 状态码和相应的错误信息。
我们可以添加更多的中间件函数来处理不同的 HTTP 错误。例如,我们可以添加一个 500 错误的处理程序:
app.use(function(err, req, res, next) { console.error(err.stack) res.status(500).send('Something broke!') })
上述代码中,当服务器遇到一个未处理的错误时,它将返回 500 状态码和相应的错误信息。
使用 Express.js 中间件进行 404 处理
除了默认处理程序外,我们还可以使用 Express.js 中间件来处理 404 错误。我们可以定义一个针对 404 错误的中间件函数,然后将其作为处理程序注册到路由器中。
-- -------------------- ---- ------- -------- ------------- ---- ----- - --------------- ------------ ----- -------- -- - ----------------- - ---- ------- -- -- ----- -------- -- - ---------- ------ ---- ------ -- -- -------- -------- -- - ------------------------- ------- - -- - -----------------
上述代码中,我们首先定义了一个 notFound()
函数来处理 404 错误。这个函数会将 HTTP 响应的状态码设置为 404,并使用 res.format()
方法来确定需要返回的数据格式。
在我们的示例中,我们定义了三种数据格式:HTML、JSON 和默认。如果客户端能够接受 HTML,我们将使用 res.render()
方法来渲染自定义的 404 页面;如果客户端能够接受 JSON,我们将返回一个 JSON 对象;否则,我们将使用默认类型并返回一个文本字符串。
总结
处理 404 错误是我们在开发 Web 应用程序时必须掌握的一项技能。在本文中,我们介绍了如何在 Express.js 中处理 404 错误,以及如何使用中间件来自定义处理程序。通过学习和掌握这些方法,我们可以更好地处理 HTTP 错误,并提供更好的用户体验。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/646a9820968c7c53b0a24e26