【发布时间】:2019-11-18 21:11:35
【问题描述】:
问题:
Hapi 不会将插件路由前缀传递给其注册的子插件。
我做了什么:
我有一些插件,我在某种主插件中使用路由前缀注册,如下所示:
const plugin: Hapi.Plugin<any> = {
name: 'public-api',
version: '1',
register: async (server: Hapi.Server, options: any) => {
await server.register([{
plugin: myPlugin,
routes: {
prefix: '/records'
}
}]);
}
}
现在所有在“myPlugin”中注册的路由都得到前缀“records”。到目前为止很容易。
假设我在“public-api”插件中注册了更多插件。
现在在我的主服务器对象中,我像这样注册“public-api”插件本身(除了一些其他第三方插件):
await server.register([
...thirdPartyStuff,
{
plugin: publicApi,
routes: {
prefix: '/api'
},
}
]);
我的期望:
现在可以通过以下路径访问“记录”实体:/api/records
正如 Hapi api 文档所指定的,注册的插件路由前缀将在其注册的子插件中传递或添加前缀。
参考:Hapi register plugins
现实:
服务器完全忽略 'publicApi' 插件的前缀,并在 /records
寻求帮助:
所以 mybe 我只是错过了一些东西,或者我愚蠢地正确阅读了文档。
无论哪种方式,也许有人可以启发我,甚至给出解决方案
我认为应该正常工作:D
因此,请提前阅读我的故事和您以任何方式提供的帮助!
干杯!
【问题讨论】:
-
有人吗?有人吗? :D 我觉得这个功能不常用。但也许有人觉得自己是一个好撒玛利亚人,可以看看这个。再次感谢
标签: typescript plugins routes prefix hapi