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.
1.8 KiB
1.8 KiB
在 Fastify 框架中,request
和 reply
是对 HTTP 请求和响应的封装,并传递给每个路由处理函数。它们分别提供了丰富的 API 来处理传入的请求和构造回去的响应。
-
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 实例。
此外,还有很多其他的属性和方法,你可以用来操作和获取有关请求的其他细节。
-
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 的设计也为高性能优化,避免不必要的封装和抽象。