【问题标题】:What is the exact use of fastify-pluginfastify-plugin 的具体用途是什么
【发布时间】:2020-04-03 21:05:41
【问题描述】:

我是 node.js 的 fastify 框架的新手,我想知道fastify-plugin 的确切用途是什么 因为我无法理解它背后的想法。我尝试了一些带有或不带有插件的代码,但我没有注意到其中的区别。除了一些行为:

1- 我可以覆盖我启动的装饰器并用 fastify-plugin 包装它。

2- 我可以使用装饰器并与其他注册插件共享。

【问题讨论】:

  • 如果你看不到这个插件的需求,那你为什么要使用它?
  • 我没有说'不需要这个插件',我只是要求澄清..因为我不认为我理解它:)
  • @NicoHaase 此外,文档中有几个地方建议使用该插件,但没有给出明确解释为什么/它究竟做了什么。

标签: javascript node.js fastify


【解决方案1】:

这个概念是这样的:

  • 每个register 调用都会创建一个封装的上下文
  • 每个register + fastify-plugin不会创建一个封装的上下文:您将停留在调用register 的同一上下文中

您将使用的封装上下文:

  • 上下文及其父级中的所有钩子
  • 上下文及其父级中的所有装饰器

这是一个可视化:

所以,如果你在根节点(蓝色那个)中添加一个onRequest 钩子,所有路由都会执行该钩子

如果您将onRequest 钩子添加到绿色钩子中,则只有在该上下文中定义的路由才会使用该钩子。

【讨论】:

  • 很棒的答案!
  • 只是为了进一步澄清,如果我理解正确,在紫色节点中注册的onRequest 钩子会影响蓝色节点的上下文并为所有路由执行?由于橙色节点和紫色节点都没有自己的封装上下文,因此注册在橙色节点中的钩子是否也会为所有路由执行?更简洁地说,一个插件会影响第一个插件在其自身选择中的上下文以及它的祖先在 fastify-plugin 中注册是否足够?
猜你喜欢
  • 2019-06-23
  • 1970-01-01
  • 2012-12-28
  • 2019-06-13
  • 1970-01-01
  • 1970-01-01
  • 2015-04-30
  • 2012-11-17
  • 2015-04-25
相关资源
最近更新 更多