前言
Fastify 是一个快速、低开销且可扩展的 Node.js Web 框架。它的性能优异,是一个非常适合构建高性能 Web 应用程序的选择。在任何应用程序中,错误处理和日志记录都是非常重要的。在本文中,我们将讨论如何使用 Fastify 处理错误和记录日志。
错误处理
在 Fastify 中,错误处理非常简单。我们可以通过使用 onError
钩子来处理错误。这个钩子会在每个路由处理程序中发生错误时被调用。我们可以将错误处理程序注册到 onError
钩子中,以便在发生错误时进行处理。以下是一个示例:
-- -------------------- ---- ------- ----- ------- - -------------------- --------------------- ----- ---- -- - ----- --- ---------------- ---- ------- -- -------------------------- ----- ---- ------ ----- -- - -------------------- ------ -- -------------------- ----- -- - -- ----- - ------------------ --------------- - --
在上面的示例中,我们向 /error
路由中抛出了一个错误。当错误发生时,onError
钩子将被调用。此时,我们可以在钩子中进行错误处理。在示例中,我们只是简单地将错误打印到控制台上。
Fastify 还提供了一个错误处理程序,它会自动向客户端发送 HTTP 错误响应。我们可以使用 reply.send(err)
方法将错误发送回客户端。
-- -------------------- ---- ------- ----- ------- - -------------------- --------------------- ----- ---- -- - ----- --- ---------------- ---- ------- -- ----------------------------- ---- ---- -- - ------------- -- -------------------- ----- -- - -- ----- - ------------------ --------------- - --
在上面的示例中,我们使用 setErrorhandler
方法来注册错误处理程序。当错误发生时,Fastify 将自动将错误发送回客户端。
日志记录
日志记录对于调试和监视应用程序非常重要。在 Fastify 中,我们可以使用 pino
日志记录器来记录日志。Pino 是一个非常快速的日志记录器,可以记录 JSON 格式的日志。
以下是一个示例:
-- -------------------- ---- ------- ----- ------- - -------------------- ----- ---- - ----------------- ---------------- ----- ---- -- - ---------------- ------- --------------- ------- -- -------------------- ----- -- - -- ----- - ------------------ --------------- - --
在上面的示例中,我们使用 pino.info
方法记录一个日志消息。我们可以在控制台上看到记录的日志消息:
{"level":30,"time":1629330365456,"msg":"hello world","pid":11162,"hostname":"localhost","v":1}
我们还可以使用 pino-http
中间件来记录 HTTP 请求和响应的日志。以下是一个示例:
-- -------------------- ---- ------- ----- ------- - -------------------- ----- ---- - ----------------- ----- -------- - ---------------------- ------- ---- -- --------------------- ---------------- ----- ---- -- - --------------- ------- -- -------------------- ----- -- - -- ----- - ------------------ --------------- - --
在上面的示例中,我们使用 pino-http
中间件来记录 HTTP 请求和响应的日志。我们可以在控制台上看到记录的日志消息:
{"level":30,"time":1629330458499,"msg":"incoming request","req":{"method":"GET","url":"/","hostname":"localhost:3000","remoteAddress":"::1","remotePort":43668},"pid":11162,"hostname":"localhost","v":1} {"level":30,"time":1629330458508,"msg":"request completed","req":{"method":"GET","url":"/","hostname":"localhost:3000","remoteAddress":"::1","remotePort":43668},"res":{"statusCode":200},"responseTime":5,"pid":11162,"hostname":"localhost","v":1}
结论
在本文中,我们讨论了如何在 Fastify 中处理错误和记录日志。错误处理和日志记录是任何应用程序的重要组成部分。通过使用 Fastify,我们可以轻松地处理错误和记录日志,以便更好地调试和监视应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/675a638aa630deb01cfebcc3