在 Express.js 中处理 404 错误

阅读时长 3 分钟读完

当用户在网站上访问一个不存在的页面时,通常会看到一个 404 错误页面。在 Express.js 中,我们可以自定义这个错误页面,或者返回一个 JSON 响应来提供更好的用户体验。本文将详细介绍如何在 Express.js 中处理 404 错误,包括实际示例。

错误处理中间件

在 Express.js 中处理 404 错误的最简单方法是使用错误处理中间件。这个中间件应该在所有的路由之后使用,因为只有当没有匹配的路由时才会触发它。下面是一个基本的示例:

-- -------------------- ---- -------
------------- ---- ----- -- -
  ----- ----- - --- ---------- --------
  ------------ - ----
  ------------
---

------------- ---- ---- ----- -- -
  --------------------- -- -----
  ----------
    ------ -
      -------- -----------
    -
  ---
---

第一个中间件是一个简单的错误处理程序:它创建一个 Error 对象并将其状态设置为 404,然后将其传递给下一个错误处理程序。第二个中间件是一个通用的错误处理程序:它检查错误对象的状态码并返回一个 JSON 响应。如果没有状态码,它会默认为 500。

自定义错误页面

除了返回 JSON 响应外,我们还可以在 Express.js 中为 404 错误定义自定义错误页面。我们只需要定义一个包含错误消息的视图并将其渲染为 HTML。在这个示例中,我们将创建一个名为 404.ejs 的视图:

-- -------------------- ---- -------
--------- -----
------
------
  ----------- --- -------------
-------
------
  ------- ----------
  ------ ------- ------
-------
-------

这个简单的视图包含一个标题和消息,它使用 EJS 模板引擎的变量来呈现消息。我们还要更新我们的错误处理程序,以便使用这个视图来呈现错误页面:

-- -------------------- ---- -------
------------- ---- ----- -- -
  ----- ----- - --- ---------- --------
  ------------ - ----
  ------------
---

------------- -------- -------

------------- ---- ---- ----- -- -
  --------------------- -- -----
  -- ----------- --- ---- -
    ----------------- -
      -------- -----------
    ---
  - ---- -
    ----------
      ------ -
        -------- -----------
      -
    ---
  -
---

这个示例中的第二个中间件向应用程序设置了 EJS 视图引擎,而在处理 404 错误时,它会渲染名为 404.ejs 的视图。

学习和指导意义

本文提供了在 Express.js 中处理 404 错误的两种不同方法:返回 JSON 响应或自定义错误页面。这两种方法都可以提高网站用户的体验,因为它们能够更好地显示错误消息并增加互通性。此外,这两种方法还教授了错误处理中间件和 EJS 模板引擎的基本技巧,因此可以应用到其他 Express.js 应用程序中。

结论

在 Express.js 中处理 404 错误通常是基本任务之一。本文提供了两种方法:返回 JSON 响应或创建自定义错误页面,这两种方法都能提高网站的用户体验。无论使用哪种方法,都需要了解错误处理中间件和 EJS 模板引擎的基础知识。通过实践,我们可以利用这些知识在其他 Express.js 应用程序中。

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

纠错
反馈