type
status
date
slug
summary
tags
category
icon
password
Edited
Sep 17, 2022 09:23 AM
Created
Sep 17, 2022 04:57 AM
使用
安装
服务器:
插件
就如同在 JavaScript 中一切皆为对象,在 Fastify 中,一切都是插件 (plugin)。
route:
引入插件:
调用了
register
API,它是 Fastify 框架的核心,也是添加路由、插件等的唯一方法。可以使用
@fastify/autoload
来自动加载路由Autoload 自动解析路径并以 文件夹名称 为 路由名称
修改路由前缀
插件加载顺序
为了保证应用的行为一致且可预测,我们强烈建议你采用以下的顺序来组织代码:
验证数据
JSON Schema
JSON Schema 就是“描述 JSON 数据格式的一段 JSON”。
JSON Schema 也是一个 JSON 字符串,下面来看一个简单的 JSON Schema:
type 的参数可以是:
number
, integer
(整型), string
, boolean
, array
, object
或者 null
。数据的验证在我们的框架中是极为重要的一环,也是核心的概念。Fastify 使用 JSON Schema 验证来访的请求。(也支持宽松的 JTD schema,但首先得禁用
jsonShorthand
)。如何向路由传递配置选项。选项中包含了一个名为
schema
的对象,它便是我们验证路由所用的模式 (schema)。借由 schema,我们可以验证 body
、querystring
、params
以及 header
。如果不存在
id
序列化数据
Fastify 对 JSON 提供了优异的支持,极大地优化了解析 JSON body 与序列化 JSON 输出的过程。
在 schema 的选项中设置
response
的值,能够加快 JSON 的序列化 (没错,这很慢!),就像这样:一旦指明了 schema,序列化的速度就能达到原先的 2-3 倍。这么做同时也保护了潜在的敏感数据不被泄露,因为 Fastify 仅对 schema 里出现的数据进行序列化。
钩子方法
钩子 (hooks) 让你能够监听应用或请求/响应生命周期之上的特定事件。使用
fastify.addHook
可以注册钩子。你必须在事件被触发之前注册相应的钩子,否则,事件将得不到处理。Request
和 Reply
是 Fastify 核心的对象done
是调用生命周期下一阶段的函数其他 Hooks 查看:
生命周期
通过 CLI 运行服务器
- 安装
fastify-cli
- 添加命令在
package.json
- 添加
server.js
- 运行
参考链接:
- 作者:JinSo
- 链接:https://jinso365.top/article/fastify-intro
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。