问题标签 [fastify]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
250 浏览

node.js - 测试完成后,如何使用“tap”恢复或回滚测试期间所做的数据库更改?

我正在使用tap框架来测试我的节点应用程序。在运行测试时,我正在对数据库进行一些更改。

我想在测试后恢复数据库中所做的所有更改。谁能帮我解决这个问题?

0 投票
2 回答
1449 浏览

reactjs - 正在发送没有授权标头的 React 请求

我正在尝试在我的标头中将不记名令牌传递给 fastify http 服务器。

我将请求中的标头设置为:

我的 console.log 打印:

在 Chrome 网络选项卡中,我查看了标题,Authorization但那里不存在。我的路由处理函数如下:

当我在服务器上打印标题时,它也没有Authorization,显示:

我错过了什么?

另一个有趣的问题是,当我从中运行请求时,Postman它会显示 200 个响应代码,并且 fastify 会打印200到日志中。但是,从传奇/请求运行:

我得到response.status0而不是200在请求方法中,而服务器日志仍然显示"res":{"statusCode":200}.

0 投票
1 回答
2127 浏览

node.js - fastify, jest:在 fastify 实例上调用 .close() 后运行进程

我有以下功能用于打开数据库连接并运行我的 fastify 服务器实例(server.js)

现在我想对正在运行的服务器实例运行一些测试,然后退出运行程序。我一直在阅读fastify 文档并尝试将设置调整为开玩笑。这是我的测试文件:

但是在我的测试完成后,我在控制台中收到以下警告:

而且我必须手动结束测试套件。

这可能是什么原因?在测试套件完成后,我的.close()函数似乎被正确调用(之后我得到了 console.logs)。

供参考,jestconfig.json

npm 测试脚本(参数省略)

运行相同的脚本--detectOpenHandles不提供任何额外的输出。

0 投票
2 回答
2196 浏览

nestjs - 如何使用 fastify 在 nestjs 中设置响应头

我正在尝试在嵌套 js 控制器中设置自定义响应头并使用 fastify。
目前我正在尝试做:

但我得到了错误:res.set is not a function
有人可以帮助我吗?

0 投票
1 回答
676 浏览

nestjs - 如何将 fastify 速率限制器应用于 Nest JS 中的单个路由?

我可以使用类似于此问题答案的代码在全局范围内将速率限制器应用于我的巢应用程序。在fastify 速率限制器自述文件中,显示您可以通过带有选项的 rateLimit 对象的配置属性将速率限制器应用于特定路由。Nest 的文档没有解释如何做到这一点;是否有可能在框架中或我不走运?

0 投票
1 回答
3559 浏览

express - 如何在 NestJS 拦截器中获取处理程序路由(对于 Express 和 Fastify)

我在尝试在我正在编写的拦截器中获取 NestJS 处理程序的路由时遇到问题。例如,如果控制器有这样的路由:

我希望能够以/param/:p1/:p2编程方式获取价值。使用 url 和 deparameterizing 不是一种选择,因为实际上没有办法以 %100 密封的方式这样做。进行了一些挖掘,但没有找到记录在案的方法来获取处理程序的路线。想知道其他人有没有运气?这是我从项目中剥离的一些示例代码:

如果事实证明拦截器无法解决问题,而像警卫这样的其他东西可以用来获取这些信息,我会全力以赴。

0 投票
1 回答
374 浏览

mocha.js - 使用 Typescript 编写的使用 NYC/Istanbul 的 Fastify 集成测试没有代码覆盖

我目前正在尝试使用 Mocha 和 NYC 在我的 fastify 路线上获得代码覆盖率。

我已经尝试预先检测代码,然后对检测代码运行测试,以及尝试以各种方式设置 NYC 以使其正常工作。

这是我目前的配置。所有以前的都产生相同的代码覆盖率输出):

纽约配置

路线文件:

集成测试:

我的单元测试调用如下所示:

我真的得到了 5% 的代码覆盖率const routes =。我真的很想弄清楚这一点。任何帮助将不胜感激!我在这里调查过的其他解决方案都不起作用。

0 投票
1 回答
624 浏览

javascript - 如何访问从客户端 JS 获取的文本响应以进行 fastify?

我有一个 fastify node.js 应用程序,我可以在它返回给调用浏览器 JS 之前看到一个承诺的文本结果。当该承诺返回给浏览器 JS 时,我只能从承诺文本中得到一个空字符串。我假设承诺没有被链接,这是一个没有其他内容的新承诺。如果这是正确的,我将如何访问内部承诺结果?

我已经在 fastify 应用程序的模块之间传递了 Promise,在任何时候都没有问题得到结果,我只是不明白我在这一点上做错了什么。这些是我在通话双方都尝试做的基础知识:

0 投票
0 回答
941 浏览

fastify - Fastify 捕获异常:FastifyError [FST_ERR_REP_INVALID_PAYLOAD_TYPE]

我正在使用 Fastify 2.12.1 并且我不断收到这个 FastifyError FST_ERR_REP_INVALID_PAYLOAD_TYPE 有人可以帮我调试这个问题。

0 投票
1 回答
261 浏览

javascript - 是否可以以这种方式使用 Node-Redis,还是我会坚持使用 websockets?

我一直在考虑一个涉及到的设计:

  1. 客户端向端点发出 POST 请求
  2. 然后该路由(从返回我字符串化的请求对象的构造函数)发布到 redis 通道。例如
  1. 侦听该通道的另一台服务器解析 JSON -> 从 obj 切换请求密钥
  2. 是否具有验证凭据等功能;
  3. 调用一个类,该类返回一个预制的响应对象,该对象转换为 str,并通过同一(或另一个通道)发送回正在异步侦听等待的路由处理程序(通过该通道发送原始请求)(在这种情况下,禁食。)例如
    ( { "transid": "1234-Abcd-5678-abcde", "state": Boolean, data: <data> } )

时间线

路由处理程序向 redis 侦听器发出 Pub 请求:

  1. ( {request: "auth", transid: "1234-Abcd-5678-abcde", data: { email: "test@test.com", "password": "pass" } )

  2. 另一台服务器上的订阅侦听器执行内部凭据验证

发布回 redis 频道

  1. ( {transid: "1234-Abcd-5678-abcde", state: false, data: { error: "Incorrect" } } )

  2. 路由处理程序使用库特定方法回复客户端,即 request.send(200)

我的问题是我不完全了解如何在上述时间线中实现第 4 步的结果;即是否有可能在路由处理程序中几乎等待消息?我已经非常接近了,但是当我设计能够扩展的东西时,我质疑这是否是一种实用的方法。(用户将详细信息发送到 /endpoint,/endpoint 路由处理程序将 json 消息发布到通道,外部服务器侦听解析消息并将其发送到 switch 语句,即 [switch(data.request)],该语句调用执行 DB 的函数操作,然后使用类构造函数生成一个对象,通过 redis 通道发送回路由处理程序,该处理程序将等待回复,然后回复给客户端。)

请问有人对此有意见吗?