请求与响应对象
在 Fastify 中,每个路由处理函数都会接收两个参数:request 和 reply。它们分别用于访问客户端请求内容和构建服务端响应。
request 对象
request 提供对请求信息的访问,常用属性包括:
request.query
获取 URL 查询参数:
// GET /search?q=fastify
fastify.get('/search', async (request) => {
const { q } = request.query;
return { result: `You searched: ${q}` };
});
request.params
获取路径参数:
// GET /user/123
fastify.get('/user/:id', async (request) => {
const { id } = request.params;
return { userId: id };
});
request.body
获取请求体(用于 POST、PUT 等请求):
fastify.post('/login', async (request) => {
const { username, password } = request.body;
return { username };
});
request.headers
访问请求头:
fastify.get('/header', async (request) => {
const agent = request.headers['user-agent'];
return { agent };
});
reply 对象
reply 用于设置响应内容、状态码和头部信息等。
reply.send(data)
发送响应数据:
reply.send({ message: 'Success' });
reply.code(statusCode)
设置响应状态码:
reply.code(201).send({ message: 'Created' });
reply.header(name, value)
设置响应头:
reply.header('X-Custom', 'value').send({ done: true });
默认行为
如果你使用 async 函数并返回一个值,Fastify 会自动调用 reply.send():
fastify.get('/', async () => {
return { hello: 'world' };
});
掌握 request 和 reply 是构建高质量 API 服务的基础。
相关内容
- Fastify 与 Express 对比 本节将对 Fastify 和 Express 两个流行的 Node.js 框架进行对比,帮助开发者理解它们的异同以及在不同场景下的选择。
- 中间件迁移指南 本节介绍如何在 Fastify 中迁移中间件,帮助开发者从其他框架(如 Express)迁移到 Fastify,理解 Fastify 中间件的工作方式,并学习如...
- 常用插件清单 本节列出了一些常用的 Fastify 插件,帮助开发者更好地扩展和定制 Fastify 应用。
- 核心 API 介绍 介绍 Fastify 中常用的核心 API,包括路由注册、请求与响应对象、日志等。
- Hello World 快速上手 Fastify,编写第一个 “Hello World” 应用,体验其简洁的 API 和高性能启动。
- 构建一个简易 API 项目 教程将引导你如何构建一个简易的 API 项目,使用 Fastify 创建基本的 RESTful API。