我希望每个hapi路线路开始与一个前缀(/api/1
)全球基本路径。这可能吗?是否有可能离不开它添加到每个路由定义高致病性禽流感
下面的路径应该是可用的路径/api/1/pets
,而不是/pets
const Hapi = require('hapi');
const server = new Hapi.Server();
server.route({
method: 'GET',
path: '/pets'
})
我希望每个hapi路线路开始与一个前缀(/api/1
)全球基本路径。这可能吗?是否有可能离不开它添加到每个路由定义高致病性禽流感
下面的路径应该是可用的路径/api/1/pets
,而不是/pets
const Hapi = require('hapi');
const server = new Hapi.Server();
server.route({
method: 'GET',
path: '/pets'
})
最好的办法是使用一个恒定的路径 -
server.route({
method: 'GET',
path: constants.route.prefix + '/pets')
});
,并在静态constants.js定义的常量文件
我不Hapi docs看到这样的选项。不过,我可以建议你一个小的解决方法。使一些功能:
function createRoutePath(routePath) {
return `/api/1${routePath}`;
}
,然后用它是这样的:
server.route({
method: 'GET',
path: createRoutePath('/pets')
});
UPDATE: 作为另一个解决办法,保留所有原样,并设置代理Web服务器。例如nginx。
如果这是它会更容易的唯一途径只需在路径'path:prefix +'/ pets''中使用常量即可。 – Bernhard
那么,使用nginx并不是那么糟糕。它在生产中被广泛使用,所以没有问题增加一个规则。 – Lazyexpert
看来这个解决方案是最简单的,并且具有租赁开销。正因为如此,我会接受它,但其他答案也提供了可能的解决方案。 – Bernhard