返回介绍

server.ext(events)

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

在 request lifecycle 扩展中注册一个扩展函数,其中:

  • events - 具有以下内容的对象或对象数组:

    • type - (必要) 扩展点事件名称。 可用的扩展点包括 request extension points 以及以下服务器扩展点:

      • 'onPreStart' - 当连接监听器启动之前调用
      • 'onPostStart' - 当连接监听器启动之后调用
      • 'onPreStop' - 当连接监听器停止之前调用
      • 'onPostStop' - 当连接监听器停止之后调用
    • method - (必要的) 在请求处理期间在指定点执行的函数或函数数组。 所需的扩展功能签名是:

      • server extension points: async function(server) 其中:

        • server - server 对象
        • this - 通过 options.bind 提供的对象或 server.bind() 设置的当前活动的上下文。
      • request extension points: a lifecycle method .

    • options - (可选) 具有以下内容的对象:

      • before -此方法之前必须执行的插件名称的字符串或数组(在同一事件上)。否则,扩展方法按添加的顺序执行。

      • after - 此方法必须在(在同一事件上)之后执行的插件名称字符串或字符串数组。 否则,扩展方法按添加的顺序执行。

      • bind - 一个上下文对象在被调用时传递回提供的方法(通过 this )。 如果方法是箭头函数,则忽略。

      • sandbox - 如果在添加 request extension points 时设置为“'plugin'”,则扩展仅添加到当前插件定义的路由中。 配置路由级扩展时不允许, 或添加服务器扩展时。 默认为 'server' 适用于添加到服务器的任何路由,添加扩展名。

      • timeout - 返回超时错误之前等待 method 完成的毫秒数。 默认为无超时。

返回值: none.

const Hapi = require('hapi');

async function example() {

  const server = Hapi.server({ port: 80 });

  server.ext({
    type: 'onRequest',
    method: function (request, h) {

      // Change all requests to '/test'

      request.setUrl('/test');
      return h.continue;
    }
  });

  server.route({ method: 'GET', path: '/test', handler: () => 'ok' });
  await server.start();

  // All requests will get routed to '/test'
}

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

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

发布评论

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