📑Fastify 的使用
00 分钟
2022-9-17
2022-9-17
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 的参数可以是:numberinteger(整型), stringbooleanarrayobject 或者 null
 
数据的验证在我们的框架中是极为重要的一环,也是核心的概念。Fastify 使用 JSON Schema 验证来访的请求。(也支持宽松的 JTD schema,但首先得禁用 jsonShorthand)。
如何向路由传递配置选项。选项中包含了一个名为 schema 的对象,它便是我们验证路由所用的模式 (schema)。借由 schema,我们可以验证 bodyquerystringparams 以及 header
如果不存在 id
notion image

序列化数据

Fastify 对 JSON 提供了优异的支持,极大地优化了解析 JSON body 与序列化 JSON 输出的过程。
在 schema 的选项中设置 response 的值,能够加快 JSON 的序列化 (没错,这很慢!),就像这样:
一旦指明了 schema,序列化的速度就能达到原先的 2-3 倍。这么做同时也保护了潜在的敏感数据不被泄露,因为 Fastify 仅对 schema 里出现的数据进行序列化。

钩子方法

钩子 (hooks) 让你能够监听应用或请求/响应生命周期之上的特定事件。使用 fastify.addHook 可以注册钩子。你必须在事件被触发之前注册相应的钩子,否则,事件将得不到处理。
RequestReply 是 Fastify 核心的对象
done 是调用生命周期下一阶段的函数
其他 Hooks 查看:

生命周期

notion image
 

通过 CLI 运行服务器

  1. 安装 fastify-cli
    1. 添加命令在 package.json
      1. 添加 server.js
        1. 运行
          1.  

        参考链接:
        1. fastify/docs-chinese: Fastify 中文文档 (github.com)
        1. Documentation | Fastify 中文网
        1. Fastify 系列教程三 (验证、序列化和生命周期)_weixin_30788731的博客-CSDN博客
         
        上一篇
        Notion API 的使用
        下一篇
        现代 JavaScript —— 正则表达式

        评论
        Loading...