内置与社区插件
Fastify 拥有强大的插件体系,既包含核心内置插件,也拥有丰富的社区维护插件,覆盖数据库、验证、静态资源、跨域等常见功能。
内置插件
Fastify 官方提供了一些由核心团队维护的插件,通常托管于 @fastify 组织下。这些插件在稳定性、性能和兼容性上都有保障。
常用内置插件包括:
| 插件名称 | 功能说明 |
|---|---|
@fastify/static |
提供静态资源托管 |
@fastify/cors |
支持跨域请求(CORS) |
@fastify/formbody |
解析 URL 编码的表单提交数据 |
@fastify/jwt |
JWT 鉴权与签发 |
@fastify/swagger |
自动生成 Swagger/OpenAPI 文档 |
@fastify/websocket |
支持 WebSocket 通信 |
@fastify/env |
环境变量校验与注入 |
@fastify/multipart |
文件上传处理 |
示例:使用 @fastify/cors
npm install @fastify/cors
const fastify = require('fastify')();
fastify.register(require('@fastify/cors'), {
origin: '*',
});
社区插件
除了内置插件,Fastify 社区也维护了大量高质量插件,通常托管在 npm 上,并可在以下地址查找:
- 官方插件目录:https://fastify.dev/ecosystem/
- GitHub 上的
fastify/plugins - npm 搜索关键字
fastify-plugin
示例:数据库插件
@fastify/mysql@fastify/mongodb@fastify/postgresfastify-typeorm-plugin(第三方)fastify-objectionjs(第三方)
使用方式与内置插件类似,注册并传入配置:
fastify.register(require('@fastify/mysql'), {
promise: true,
connectionString: 'mysql://user:pass@localhost/db',
});
插件选型建议
- 优先使用内置插件:稳定、文档完善、更新及时。
- 查看维护状态:GitHub 上最近是否有更新?是否有活跃 issue?
- 关注兼容性:确保插件支持当前 Fastify 版本。
- 使用 fastify-plugin 包装:保证作用域暴露和依赖管理。
插件生态的意义
- 加快开发速度:避免重复造轮子。
- 解耦应用结构:以插件为边界拆分功能模块。
- 丰富功能覆盖:从日志记录到 GraphQL 支持,生态涵盖广泛。
官方提供了完善的插件目录与开发指南,你也可以开发自己的插件并贡献到社区。
相关内容
- Fastify 与 Express 对比 本节将对 Fastify 和 Express 两个流行的 Node.js 框架进行对比,帮助开发者理解它们的异同以及在不同场景下的选择。
- 中间件迁移指南 本节介绍如何在 Fastify 中迁移中间件,帮助开发者从其他框架(如 Express)迁移到 Fastify,理解 Fastify 中间件的工作方式,并学习如...
- 常用插件清单 本节列出了一些常用的 Fastify 插件,帮助开发者更好地扩展和定制 Fastify 应用。
- 核心 API 介绍 介绍 Fastify 中常用的核心 API,包括路由注册、请求与响应对象、日志等。
- Hello World 快速上手 Fastify,编写第一个 “Hello World” 应用,体验其简洁的 API 和高性能启动。
- 请求与响应对象 详解 Fastify 中的 request 和 reply 对象,用于获取请求信息和构造响应。