Fastify 中如何处理 404 错误?

推荐答案

在 Fastify 中处理 404 错误可以通过自定义 notFoundHandler 来实现。以下是一个示例代码:

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

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

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

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

在这个示例中,setNotFoundHandler 方法用于定义当请求的路由不存在时的处理逻辑。当用户访问一个不存在的路由时,Fastify 会返回一个 404 状态码和自定义的错误消息。

本题详细解读

1. setNotFoundHandler 方法

setNotFoundHandler 是 Fastify 提供的一个方法,用于处理未找到路由的情况。它接受一个回调函数作为参数,该回调函数会在请求的路由不存在时被调用。

2. 回调函数的参数

回调函数有两个参数:

  • request:表示当前的请求对象,包含了请求的所有信息,如请求头、请求体等。
  • reply:表示当前的响应对象,用于发送响应给客户端。

3. 自定义 404 响应

在回调函数中,你可以使用 reply.code(404) 来设置响应的状态码为 404,然后使用 reply.send 发送自定义的错误消息。在这个示例中,我们发送了一个包含 message 字段的 JSON 对象。

4. 示例代码解析

  • fastify.setNotFoundHandler:设置 404 处理程序。
  • reply.code(404).send({ message: 'Route not found' }):返回 404 状态码和自定义消息。
  • fastify.get('/'):定义一个根路由,返回 { hello: 'world' }
  • fastify.listen(3000):启动服务器并监听 3000 端口。

通过这种方式,你可以灵活地处理 Fastify 应用中的 404 错误,并根据需要返回自定义的错误信息。

纠错
反馈