返回介绍

插件

发布于 2024-02-12 19:53:56 字数 1677 浏览 0 评论 0 收藏 0

插件提供了一种通过将服务器逻辑拆分为更小的组件来组织应用程序代码的方法。 每个插件都可以通过标准服务器接口操作服务器, 但增加了沙箱某些属性的能力。 例如,在一个插件中设置文件路径不会影响另一个插件中设置的文件路径。

插件是具有以下属性的对象:

  • register - (required) 注册签名函数 async function(server, options) 其中:

    • server - 具有特定于插件的 server.realm 服务器对象.
    • options - 通过 server.register() 在注册期间传递给插件的任何选项。
  • name - (必要) 插件名称字符串. 该名称用作唯一键。 已发布的插件(例如,在 npm 中发布)应使用与其 'package.json' 文件中的名称字段相同的名称. 每个应用程序中的名称必须是唯一的。

  • version - (可选) 插件版本字符串. 该版本仅用于提供信息,以使其他插件能够找到加载的版本. 该版本应与插件的 'package.json' 文件中指定的版本相同。

  • multiple - (可选) 如果为 true , 允许插件在同一服务器上多次注册。默认为 false

  • dependencies - (可选) 一个字符串或一个字符串数组,表示插件依赖项。 与通过 server.dependency() 设置依赖相同.

  • once - (可选) 如果为 true , 每个服务器只会注册一次插件。如果设置,则覆盖传递给 server.register()once 选项。默认为不覆盖。

const plugin = {
  name: 'test',
  version: '1.0.0',
  register: function (server, options) {

    server.route({
      method: 'GET',
      path: '/test',
      handler: function (request, h) {

        return 'ok';
      }
    });
  }
};

或者,可以通过 pkg 属性包含 nameversion ,该属性包含已有名称和版本的 'package.json' 文件中:

const plugin = {
  pkg: require('./package.json'),
  register: function (server, options) {

    server.route({
      method: 'GET',
      path: '/test',
      handler: function (request, h) {

        return 'ok';
      }
    });
  }
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文