路由注册与嵌套
Fastify 提供简洁灵活的路由定义方式,并支持模块化组织与嵌套注册,方便构建结构清晰的服务。
基本路由注册
Fastify 使用对应 HTTP 方法的函数进行路由注册,如 .get()、.post()、.put() 等:
fastify.get('/ping', async () => {
return { pong: true };
});
路径参数
通过冒号定义路径参数:
fastify.get('/user/:id', async (request) => {
const { id } = request.params;
return { id };
});
支持多个参数和正则匹配:
fastify.get('/order/:orderId(\\d+)', async (request) => {
return { order: request.params.orderId };
});
嵌套路由与前缀
使用 .register() 方法可以组织嵌套路由,并设置路径前缀:
// user-routes.js
async function userRoutes(fastify) {
fastify.get('/', async () => {
return [{ id: 1, name: 'Alice' }];
});
fastify.get('/:id', async (request) => {
return { id: request.params.id };
});
}
module.exports = userRoutes;
在主文件中注册模块并指定前缀:
fastify.register(require('./user-routes'), { prefix: '/users' });
访问路径为:
/users/→ 用户列表/users/:id→ 获取指定用户信息
方法约束与 schema
可为每个路由定义 method 和 schema,明确其行为:
fastify.route({
method: 'POST',
url: '/submit',
schema: {
body: {
type: 'object',
required: ['name'],
properties: {
name: { type: 'string' }
}
}
},
handler: async (request) => {
return { ok: true };
}
});
合理组织路由结构,有助于维护大型应用的可读性与模块化。
相关内容
- Fastify 与 Express 对比 本节将对 Fastify 和 Express 两个流行的 Node.js 框架进行对比,帮助开发者理解它们的异同以及在不同场景下的选择。
- 中间件迁移指南 本节介绍如何在 Fastify 中迁移中间件,帮助开发者从其他框架(如 Express)迁移到 Fastify,理解 Fastify 中间件的工作方式,并学习如...
- 常用插件清单 本节列出了一些常用的 Fastify 插件,帮助开发者更好地扩展和定制 Fastify 应用。
- 核心 API 介绍 介绍 Fastify 中常用的核心 API,包括路由注册、请求与响应对象、日志等。
- Hello World 快速上手 Fastify,编写第一个 “Hello World” 应用,体验其简洁的 API 和高性能启动。
- 请求与响应对象 详解 Fastify 中的 request 和 reply 对象,用于获取请求信息和构造响应。