推荐答案
在 Express 中处理 404 错误,可以通过在路由的最后添加一个中间件来捕获所有未匹配的路由请求,并返回 404 状态码和相应的错误信息。以下是一个示例代码:
// www.javascriptcn.com code example
const express = require('express');
const app = express();
// 其他路由处理
app.get('/', (req, res) => {
res.send('Hello World!');
});
// 404 错误处理中间件
app.use((req, res, next) => {
res.status(404).send('404 - Not Found');
});
// 启动服务器
app.listen(3000, () => {
console.log('Server is running on port 3000');
});本题详细解读
1. 404 错误的含义
404 错误表示客户端请求的资源在服务器上未找到。在 Express 中,当请求的 URL 没有匹配到任何已定义的路由时,就会触发 404 错误。
2. 处理 404 错误的机制
在 Express 中,路由是按照定义的顺序进行匹配的。如果在所有已定义的路由中都没有找到匹配的路由,请求就会继续向下传递,直到遇到一个能够处理它的中间件或路由。
3. 404 错误处理中间件
为了处理 404 错误,通常会在所有路由的最后添加一个中间件。这个中间件会捕获所有未被前面路由处理的请求,并返回 404 状态码和相应的错误信息。
4. 示例代码解析
app.use((req, res, next) => {...}):这是一个中间件函数,它会在所有路由之后执行。use方法用于加载中间件。res.status(404).send('404 - Not Found'):设置响应状态码为 404,并发送错误信息 "404 - Not Found"。
5. 注意事项
- 404 错误处理中间件应该放在所有路由的最后,以确保它能够捕获所有未匹配的请求。
- 可以根据需要自定义 404 错误页面或返回 JSON 格式的错误信息。