场景:我有一个现有的遗留应用程序,它有很多路由。我正在开发具有所有新路由的HAPI API。随着时间的推移,我会将所有现有路线转换为hapi。如果传入路由与现有HAPI路由不匹配,我会将其转发到旧系统。
如何在将其转发到其他遗留系统之前检查我的所有当前hapi路由以获取传入路由请求?任何一个例子,建议都会很明显。
答案 0 :(得分:1)
这是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。查看文档。