📅  最后修改于: 2023-12-03 14:41:04.523000             🧑  作者: Mango
在使用 Express 框架开发 Web 应用时,有时候用户会输入错误的 URL 或者请求了不存在的资源。这时候我们应该如何处理呢?
404 响应表示服务器无法找到请求的资源。这个状态码通常用于表示客户端输入了错误的 URL 或者请求了不存在的资源。在 Express 框架中,我们可以通过编写中间件来处理这种情况。
在 Express 中,我们可以使用 app.use() 函数编写中间件来处理 404 响应。下面是一个示例代码:
app.use(function (req, res, next) {
res.status(404).send("Sorry, can't find that!");
});
这段代码会在所有路由之后执行,如果没有匹配到任何路由,则会返回一个 404 状态码和一段文本提示。
上面的代码虽然能够正确处理 404 响应,但是用户会看到一段纯文本提示,这显然不够友好。我们可以使用 Express 的模板引擎来渲染一个自定义的 404 页面。
首先,在 views 目录下创建一个名为 404.ejs 的文件,用于渲染自定义页面。例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Page Not Found</title>
</head>
<body>
<h1>Page Not Found</h1>
<p>The requested URL <code><%= url %></code> was not found on this server.</p>
</body>
</html>
接下来,我们修改上面的中间件代码,让它渲染我们刚才创建的页面:
app.use(function (req, res, next) {
res.status(404).render('404', {
url: req.originalUrl
});
});
通过上面的代码,用户访问不存在的 URL 时会显示我们自定义的页面,而不再是纯文本提示。
在 Express 中处理 404 响应很简单,只需要编写一个中间件即可。通过使用模板引擎,我们可以为用户呈现更友好的页面,提高用户体验。