@forrestjs/service-fastify

中文文档
5.2.2发布于 2024/03/18MITCommonJS近 30 天下载 7939

ForrestJS服务,它有助于建立快取服务器.

中文使用文档
文档目录21 节
  1. 安装设置( S)
  2. 配置环境( E)
  3. ===========================================================…
  4. {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff…
  5. * 固定.tdd.scope
  6. A. 背景情况
  7. qq 结扎
  8. 轴线
  9. 测试支持
  10. 健康检查
  11. 测试 API
  12. 扩展
  13. $FASTIFY 选项
  14. $FASTIFY HACKS BEE
  15. * $FASTIFY HACKS AFTER
  16. \ $FASTIFY 巴拉圭
  17. $FASTIFY 卢特
  18. * $FASTIFY TDD RESET
  19. $FASTIFY TDD CHECK (英语)
  20. * $FASTIFY TDD ROOT
  21. * $FASTIFY TDD ROOT

@forrestjs/ service-fastify (中文(简体) )

ForrestJS服务,帮助建立快活JS服务器.

戴莫:
https://codesandbox.io/s/ service-fastify-th8dq 页面存档备份,存于互联网档案馆

安装设置( S)

npm add @forrestjs/service-fastify

在您的 FastifyJS App 中设置 :

// index.js
const forrestjs = require('@forrestjs/core');
const fastifyService = require('@forrestjs/service-fastify');

// Create an Home Page for the Web App
const homePage = () => ({
  target: '$FASTIFY_ROUTE',
  handler: [
    {
      method: 'GET',
      url: '/',
      handler: async () => `Hello World`,
    },
  ],
});

// Run the App:
forrestjs.run({
  settings: {
    fastify: {
      port: 8080,
    },
  },
  services: [fastifyService],
  features: [homePage],
});

配置环境( E)

===================================================================================================================================================

设置服务器会聆听请求的端口 .

它回到环境变量:

  • process.env.REACT_APP_PORT
  • process.env.PORT
  • 8080 (默认值)

{\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}请把..

让您通过任意配置到 快捷实例。 。 。 .

* 固定.tdd.scope

让你设置测试API的根.

默认 : /test


A. 背景情况

ForrestJS App将装饰:

qq 结扎

引用 App 启动时配置的快捷实例 。 它允许完全操控运行中的服务器.

const fastify = getContext('fastify');

轴线

参考了Axios的静态实例.

const axios = getContext('axios');
await axios.get('/');

测试支持

服务快速化船舶测试设施 目标是使端-端测试方便您.

这个想法是让测试侵犯与快速实例互动 使用 REST API , 专供使用 process.env.NODE_ENV 设定为:

  • 发展
  • 测试

您也必须通过环境变量

DANGEROUSLY_ENABLE_FASTIFY_TDD_ENDPOINT=yes

这些测试特定的API在以下条件下暴露: /test/... 通过设置可以更改的根 fastify.tdd.root。 。 。 .

健康检查

根路线 /test 担任体检员。 任何测试客户端都应该等待 200 从此结束点回复,然后尝试运行任何呼叫.

默认情况下,这种健康检查没有逻辑,但您可以通过执行两个扩展来进行互动:

  • $FASTIFY_TDD_CHECK
  • $FASTIFY_TDD_ROOT

测试 API

get://test/reset

运行 $FASTIFY_TDD_RESET 处理器以重置 App 状态 .

get://test/config?key=foobar&value=123

从 App 读取配置值

post://test/config { key: 'foobar', value: 555 }

将配置值写入 App

post://test/axios/stubs

delete://test/axios/stubs


扩展

所有被曝光的扩展 service-fastify 为: 同步 执行 静态。 。 。 .

$FASTIFY 选项

它允许在程序上修改给 Fastify 实例的选项,在 瀑布。 。 。 .

registerAction({
  target: '$FASTIFY_OPTIONS',
  handler: (defaultOptions) => ({
    ...defaultOptions,
    logger: true,
  }),
});

$FASTIFY HACKS BEE

这钩火在任何其他步骤之前.
报告直接提到 fastify 举个例子.

registerAction({
  target: '$FASTIFY_HACKS_BEFORE',
  handler: ({ fastify }) => {
    // Do something with the Fastify's instance
    fastify.register();
  },
});

* $FASTIFY HACKS AFTER

这钩火再过任何一步.
报告直接提到 fastify 举个例子.

registerAction({
  target: '$FASTIFY_HACKS_AFTER',
  handler: ({ fastify }) => {
    // Do something with the Fastify's instance
    fastify.register();
  },
});

\ $FASTIFY 巴拉圭

请注册 Fastify 插件或装饰实例 .

registerAction({
  hook: '$FASTIFY_PLUGIN',
  handler: ({ registerPlugin }) => {
    registerPlugin(/* fastify plugin */);
    registerPlugin(/* fastify plugin */);
  },
});

它也接受API来装饰快活实例:

registerAction({
  hook: '$FASTIFY_PLUGIN',
  handler: ({ decorateRequest }) => {
    const user = { name: 'Marco' };
    decorateRequest('user', user);
  },
});

$FASTIFY 卢特

让我们在您快速化实例中执行一级路径 :

// With the API:
registerAction({
  target: '$FASTIFY_ROUTE',
  handler: ({ registerRoute }) =>
    registerRoute({
      method: 'GET',
      url: '/',
      handler: (req, res) => res.send('Hello World'),
    }),
});

// With direct values:
registerAction({
  target: '$FASTIFY_ROUTE',
  handler: () => ({
    method: 'GET',
    url: '/',
    handler: (req, res) => res.send('Hello World'),
  }),
});

// With multiple routes
registerAction({
  target: '$FASTIFY_ROUTE',
  handler: () => [
    {
      method: 'GET',
      url: '/p1',
      handler: (req, res) => res.send('Page1'),
    },
    {
      method: 'GET',
      url: '/p2',
      handler: (req, res) => res.send('Page2'),
    },
  ],
});

* $FASTIFY TDD RESET

让您从任何服务或特性中注入状态重置逻辑 .

测试将调用 /test/reset 以触发 App 状态重置.

registerAction({
  target: '$FASTIFY_TDD_CHECK',
  handler: ({ registerTddReset }) => {
    registerTddCheck(async ({ getContext }) => {
      const pg = getContext('pg');
      return pg.query('DROP SCHEMA "public" CASCADE');
    });
  },
});

$FASTIFY TDD CHECK (英语)

让你注射 preHandlers 页:1 /test 路线.

用于等待数据库连接或其他先决条件 .

registerAction({
  target: '$FASTIFY_TDD_CHECK',
  handler: ({ registerTddCheck }) => {
    // Middleware style
    registerTddCheck((request, reply, next) => {
      console.log('Healthcheck with callback');
      next();
    });

    // Async style
    registerTddCheck(async (request, reply) => {
      console.log('Asynchronous healthcheck');
    });
  },
});

* $FASTIFY TDD ROOT

让您执行返回体 /test 路线.

registerAction({
  target: '$FASTIFY_TDD_ROOT',
  name: 'registerTddRoute',
  handler: () => (request, reply) => reply.send('ok'),
});

* $FASTIFY TDD ROOT

让你延伸 /test API 有自定义子路由.

它的作用完全一样 $FASTIFY_ROUTE,但您定义的所有路径都带有测试前缀.

版本与发布记录

@forrestjs/service-fastify 共发布 169 个版本,首次发布于 2020/08/02;过去 12 个月发布了 0 个版本。

版本发布日期距今
5.2.2latest2024/03/182 年前
5.2.12023/03/223 年前
5.2.02023/03/223 年前
5.1.12023/03/213 年前
5.1.02023/03/213 年前
5.0.62023/03/203 年前

关于 @forrestjs/service-fastify 的常见问题

@forrestjs/service-fastify 是什么?

ForrestJS服务,它有助于建立快取服务器.

如何安装 @forrestjs/service-fastify?

在项目目录运行 npm install @forrestjs/service-fastify,或使用 pnpm add / yarn add / bun add。

@forrestjs/service-fastify 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/forrestjs__service-fastify 是否存在。

@forrestjs/service-fastify 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@forrestjs/service-fastify 可以商用吗?

@forrestjs/service-fastify 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@forrestjs/service-fastify 的下载量有多少?

根据 npm 官方下载统计,@forrestjs/service-fastify 在 2026/10/16 – 2026/11/14 这 30 天内被下载 7,939 次,日均约 265 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@forrestjs/service-fastify 还在维护吗?

最新版本 5.2.2 发布于 2024/03/18(2 年前);至今共发布 169 个版本,其中过去 12 个月发布了 0 个;首次发布于 2020/08/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。