主题
内置与社区插件
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
bash
npm install @fastify/cors
js
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/postgres
fastify-typeorm-plugin
(第三方)fastify-objectionjs
(第三方)
使用方式与内置插件类似,注册并传入配置:
js
fastify.register(require('@fastify/mysql'), {
promise: true,
connectionString: 'mysql://user:pass@localhost/db',
});
插件选型建议
- 优先使用内置插件:稳定、文档完善、更新及时。
- 查看维护状态:GitHub 上最近是否有更新?是否有活跃 issue?
- 关注兼容性:确保插件支持当前 Fastify 版本。
- 使用 fastify-plugin 包装:保证作用域暴露和依赖管理。
插件生态的意义
- 加快开发速度:避免重复造轮子。
- 解耦应用结构:以插件为边界拆分功能模块。
- 丰富功能覆盖:从日志记录到 GraphQL 支持,生态涵盖广泛。
txt
官方提供了完善的插件目录与开发指南,你也可以开发自己的插件并贡献到社区。