在 web 开发领域中,选择一个适合的框架非常重要。Fastify 是一种快速、低开销的 Node.js 框架,不仅易于使用,而且非常轻量级。本文将为您详细介绍 Fastify 框架的请求与响应,包括如何处理请求、响应的各个阶段和示例代码,为您的 web 开发之路提供有价值的指导。
Fastify 的请求
在 Fastify 中,请求对象是一个 JS 对象,它包含了很多属性和方法,使您可以轻松地访问请求的各个部分。其中,最常用的属性有 headers
、params
、query
和 body
。下面,我们将逐一介绍它们的作用。
headers
headers
属性给您访问 HTTP 请求头部的所有字段提供了一个简单的方式。您可以使用 dot notation 来访问单个字段,也可以使用 [] 来访问任何字段。
fastify.get('/example', (req, res) => { const contentType = req.headers['content-type'] const encoding = req.headers.encoding || 'utf-8' })
params
params
属性给您访问路由参数提供了一个简单的方式。您可以在路由路径中使用一个冒号来声明路由参数,例如 /user/:id
。在路由处理程序中,您可以通过访问 req.params
来获取路由参数。
fastify.get('/user/:id', (req, res) => { const userId = req.params.id })
query
query
属性提供了一种方法来访问请求中所有查询字符串参数的对象。查询字符串是一种附加到 URL 的键值对参数,通常用于过滤或限制资源的搜索。
fastify.get('/users', (req, res) => { const limit = req.query.limit || 50 const offset = req.query.offset || 0 })
body
body
属性是请求正文的缓冲区或者解析正文的 JavaScript 对象。对于 POST、PUT 或者 PATCH 请求,Fastify 通常会自动解析请求正文,并将其转换为 JavaScript 对象。您可以使用 req.body
来访问这个 JavaScript 对象。
fastify.post('/users', async (req, res) => { const { name, email } = req.body const user = await createUser({ name, email }) res.send(user) })
Fastify 的响应
在 Fastify 中,响应对象是一个 JS 对象,它也包含了很多属性和方法,使您可以轻松地设置响应的各个部分。其中,最常用的方法是 send()
、status()
和 header()
。下面将逐一介绍这些方法。
send()
send()
方法允许您将响应发送回客户端。该方法接受任何类型的数据作为其参数,包括字符串、数组和对象。一旦您调用了 send()
方法,它将自动设置响应的 Content-Type
头部,根据发送的数据自动选择相应的 MIME 类型。
fastify.get('/users', async (req, res) => { const users = await getUsers() res.send(users) })
status()
status()
方法允许您设置响应的 HTTP 状态码。Fastify 默认将状态码设置为 200,因此如果您想返回其他状态码,只需调用 status()
方法即可。
fastify.get('/users/:id', async (req, res) => { const user = await getUser(req.params.id) if (!user) { res.status(404).send({ error: 'User not found' }) } else { res.send(user) } })
header()
header()
方法允许您设置响应头部中的任何字段。该方法接受两个参数:字段名称和字段值。Fastify 会将特定的 Response Headers 值符合所有 CORS 面向请求的 HTTP/1 跨域资源共享规范。
fastify.get('/users/:id', async (req, res) => { const user = await getUser(req.params.id) res.header('Last-Modified', user.updatedAt) res.send(user) })
结论
Fastify 框架是一个非常流行的 Node.js 框架,它提供了请求对象和响应对象,使得开发者可以轻松地访问请求和响应的各个部分。本文将 Fastify 框架的请求和响应做了详细的介绍,涵盖了各个方面的细节以及示例代码。通过了解 Fastify 框架的请求和响应,您可以更轻松快捷地进行 web 开发,并且开发出更加高效、低开销的应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/670335abd91dce0dc84a5a7c