SuperAPI AI 工具集

fastify

编程与开发

查看项目

更新于 10-16 00:29

技能介绍

Fastify 是一个高性能 Node.js Web 框架,TypeScript 优先、schema 驱动,公开资料称可处理 76k+ 请求/秒,适合构建快速 REST API 或微服务。

安装:npm install fastify;TypeScript 项目可加 npm install -D typescript @types/node。基础用法是创建实例并注册路由,如 fastify.get('/', async (request, reply) => { return { hello: 'world' } }),再调用 fastify.listen({ port: 3000 })。

主要能力包括:1) TypeScript 类型化路由,可为 Params、Body、Querystring 指定泛型,使 request.params、request.body、request.query 获得类型推断;2) Schema 校验,支持原生 JSON Schema,也支持 TypeBox(@sinclair/typebox 与 @fastify/type-provider-typebox)和 Zod(zod 与 fastify-type-provider-zod),可定义请求与响应 schema;3) 插件体系,使用 fastify-plugin 编写插件,通过 fastify.register 注册,并支持作用域隔离;4) 常用插件如 @fastify/cors、@fastify/helmet、@fastify/rate-limit、@fastify/jwt、@fastify/cookie、@fastify/multipart;5) 生命周期 Hooks,包括 onRequest、preValidation、preHandler、preSerialization、onSend、onResponse、onError,也支持路由级 preHandler;6) 错误处理,可用 setErrorHandler 统一处理校验错误、自定义状态码错误与内部错误,或用 @fastify/error 创建自定义错误;7) 装饰器,通过 decorate 与 decorateRequest 扩展实例或请求,并可用 declare module 扩展类型;8) 路由与插件自动加载,@fastify/autoload 可按目录加载;9) 测试,可用 app.inject 注入请求进行断言。

使用方式上,通常先配置 tsconfig.json(如 target ES2022、module NodeNext 等),再定义 schema 与路由、注册插件、编写错误处理与 hooks。限制方面,资料未提供正式性能基准、完整版本兼容列表、价格或授权信息,具体能力以官方文档为准。