我希望每個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