plugins - 如何调用某些路由的Hapi插件?

标签 plugins hapi.js

我使用的是 Hapi 12.1。

尝试弄清楚如何仅在某些路线上调用某些分机点。

例如: '/你好' 我想调用在“onRequest”步骤中工作的三个不同的扩展点。

对于: '/再见' 我想调用一个不同的扩展点,该扩展点也适用于“onRequest”,但它是不同的操作和“onPreAuth”步骤。

对于: '/健康' 不要调用任何扩展点,直接放入处理程序中..

我尝试了各种方法来创建插件、定义路由和扩展点。但扩展点似乎是全局的,并且不仅仅在插件的作用域路由上操作。

我错过了什么?

最佳答案

您可以使用 request.route.path 访问扩展点上的路径。这样,您可以根据路径定义要运行的内容。示例:

server.ext('onPreAuth', function (request, reply) {

    switch(request.route.path) {
        case '/test1':
        case '/test2':
            // Do something

            break;
        case '/test3':
            // Do something else

            break;
    }

    reply.continue();
});

或者,您也可以使其依赖于路由配置:

server.ext('onPreAuth', function (request, reply) {

    if(request.route.settings.plugins.runPreAuth) {
        // Do something

    }

    reply.continue();
});

然后,您只需在 route 定义配置:

server.route({
    method: 'get',
    path: '/test1',
    handler: function(request, reply) {

        reply({result: 'ok'});
    },
    config: {
        plugins: {
            runPreAuth: true
        }
    }
});

关于plugins - 如何调用某些路由的Hapi插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35059682/

相关文章:

c# - 数据库管理库

c++ - Qt 自定义插件无法加载 - "Shared Library Not Found"

plugins - Notepad++ 在插入 dll 时崩溃

iOS- UIWebView 和下载的代码

internet-explorer - css3pie 是如何工作的?

javascript - Hapi-Joi 验证有效负载可以是对象数组还是简单的 Javascript 对象?

node.js - 如何将 url 查询参数添加到 hapijs 中的 hapi 代理调用中

javascript - 使用 Joi 验证请求时如何避免 Hapi.js 发送 400 错误

javascript - Hapi Joi 验证 - 验证单个字符串

javascript - Hapijs 查询参数未定义