在 Express.js 中处理 404 页面的技巧

阅读时长 3 分钟读完

当访问一个不存在的路由时,我们通常期望看到一个 404 页面而不是默认的错误信息。在 Express.js 中,处理 404 页面并不是一项困难的任务,本文将会介绍几种实现的方法。

使用中间件处理 404

在 Express.js 中,我们可以通过中间件来捕获请求并返回指定的 404 页面。下面是一个示例代码:

上面的代码中,我们使用 app.use 方法注册了一个中间件函数,它接受三个参数:请求对象、响应对象和下一个函数。如果这个中间件函数被调用,意味着页面不存在,我们就可以使用 res.status(404) 方法来设置响应状态为 404,然后使用 res.render 方法来显示 404 页面。在渲染 404 页面时,我们向模板传递了一个 url 参数,它表示原始请求的 URL。

使用 catch-all 路由

除了中间件,我们还可以使用 catch-all 路由来处理 404 页面。下面是一个示例代码:

上面的代码中,我们使用 app.get 方法注册了一个路由,它匹配所有路径并处理 404 页面。与中间件方式相比,这种方式的差别在于我们使用 get 方法而不是 use 方法来注册路由。

自定义错误处理器

最后,我们还可以使用自定义错误处理器来处理 404 错误。下面是一个示例代码:

上面的代码中,我们注册了一个错误处理器函数,它接受 4 个参数:错误对象、请求对象、响应对象和下一个函数。在处理错误时,它首先检查错误对象的状态是否为 404。如果是,就使用 res.status(404) 方法来设置响应状态为 404,然后使用 res.render 方法来显示 404 页面。否则,就调用 next 方法将错误传递给下一个错误处理器或中间件。

总结

在 Express.js 中处理 404 页面并不是一项困难的任务,我们可以使用中间件、catch-all 路由或自定义错误处理器来实现。在实际开发中,我们需要根据具体情况来选择最合适的方式。如果您有其他好的方法,欢迎分享!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e99527f6b2d6eab34d1db3

纠错
反馈