推荐答案
在 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 错误,并根据需要返回自定义的错误信息。