You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
hutao/reference/P01CentralControl/docs/fastify的request和reply.md

1.8 KiB

在 Fastify 框架中,requestreply 是对 HTTP 请求和响应的封装,并传递给每个路由处理函数。它们分别提供了丰富的 API 来处理传入的请求和构造回去的响应。

  1. request: 表示一个传入的 HTTP 请求。它具有多个属性和方法,用来访问请求的内容,例如:

    • request.body: 包含了 POST、PATCH 或 PUT 请求中的 payload。
    • request.query: 包含了 URL 查询字符串的键值对。
    • request.params: 包含了路由参数。
    • request.headers: 包含了请求头的键值对。
    • request.raw: Fastify 为了性能考虑并不会对 Node.js 原生的 request 对象进行重量级的包装,所以 request.raw 就是原始的 Node.js HTTP 请求对象。
    • request.log: 用于记录日志的 logger 实例。

    此外,还有很多其他的属性和方法,你可以用来操作和获取有关请求的其他细节。

  2. reply: 表示对于客户端请求的响应。它封装了多个定义和发送 HTTP 响应的方法,例如:

    • reply.code(statusCode): 设置 HTTP 响应的状态代码。
    • reply.header(name, value): 设置 HTTP 响应头。
    • reply.send(payload): 发送响应数据到客户端,这里的 payload 可以是一个字符串、Buffer、对象等。
    • reply.type(contentType): 简便方法设置 Content-Type 响应头。
    • reply.raw: 和 request.raw 类似,reply.raw 就是原始的 Node.js HTTP 响应对象。

    就像 request 一样,reply 提供了其他的方法和属性来处理 HTTP 响应。

这些封装提供了快捷的方法操作请求和响应,而不必深入了解底层的 Node.js HTTP API。Fastify 的设计也为高性能优化,避免不必要的封装和抽象。