代码之家  ›  专栏  ›  技术社区  ›  Brendan

将插件选项注入单独文件中定义的Hapi路由处理程序的模式

  •  0
  • Brendan  · 技术社区  · 7 年前

    我正在开发我的Hapi应用程序插件和我的路线是保持在一个单独的文件,文件做插件 server.route 打电话。此外,这些路由的处理程序也在单独的文件中。例如

    - plugin.js
    - routes.js
    - handlers/
        - route1.js
        - route2.js
    

    plugin.js 有点像。。。。

    const routes = require('./routes.js')
    ...
    server.route(routes)
    

    routes.js 有点像。。。

    module.exports = [
      { 
        method: 'GET', 
        path: '/route1', 
        handler: require('./handlers/route1')
      },
      ...
    ]
    

    处理程序文件导出带有签名的函数 (request, h)

    我的路由处理程序(以及其他)需要访问插件注册时传入的选项,但他们只能访问 (请求,h)

    options 但这感觉就像是围绕项目的结构来定义惯例和民间传说,而且我觉得这可能会导致Javascript范围界定/闭包怪异的问题。

    (request, h, options) 以干净或明确的方式?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Brendan    7 年前

    所以我发现插件选项在toolkit对象上可用,如下所示。。。

    h.realm.pluginOptions