教程 fastify tutorial

内置与社区插件

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 上,并可在以下地址查找:

示例:数据库插件

  • @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
官方提供了完善的插件目录与开发指南,你也可以开发自己的插件并贡献到社区。