检查 Hapi 代理处理程序中的现有路由

Check existing routes in Hapi proxy handlers

场景:我有一个现有的遗留应用程序,它有很多路由。我正在开发具有所有新路线的 HAPI API。随着时间的推移,我会将所有现有路线转换为 hapi。如果传入路由与现有 HAPI 路由不匹配,我会将其转发到遗留系统中。

在将传入路由请求转发到其他遗留系统之前,如何检查我所有当前的 hapi 路由?任何类型的例子,建议将是可观的。

这是 h2o2 插件的一个很好的用例。它是 hapi 的代理处理程序插件。

注册插件:

const Hapi = require('hapi');
const server = new Hapi.Server();

server.register({
    register: require('h2o2')
}, function (err) {

    if (err) {
        console.log('Failed to load h2o2');
    }

    server.start(function (err) {

        console.log('Server started at: ' + server.info.uri);
    });
});

创建一个将请求转发给另一个的 hapi 路由:

server.route({
    method: 'GET',
    path: '/',
    handler: {
        proxy: {
            uri: 'https://some.upstream.service.com/that/has?what=you&want=todo'
        }
    }
});

如果需要,您还可以添加更多 complicated route handling。查看文档。