2017-09-05 62 views

回答

0

最好的辦法是使用一個恆定的路徑 -

server.route({ 
    method: 'GET', 
    path: constants.route.prefix + '/pets') 
}); 

,並在靜態constants.js定義的常量文件

+0

看來這個解決方案是最簡單的,並且具有租賃開銷。正因爲如此,我會接受它,但其他答案也提供了可能的解決方案。 – Bernhard

0

我不Hapi docs看到這樣的選項。不過,我可以建議你一個小的解決方法。使一些功能:

function createRoutePath(routePath) { 
    return `/api/1${routePath}`; 
} 

,然後用它是這樣的:

server.route({ 
    method: 'GET', 
    path: createRoutePath('/pets') 
}); 

UPDATE: 作爲另一個解決辦法,保留所有原樣,並設置代理Web服務器。例如nginx。

+0

如果這是它會更容易的唯一途徑只需在路徑'path:prefix +'/ pets''中使用常量即可。 – Bernhard

+0

那麼,使用nginx並不是那麼糟糕。它在生產中被廣泛使用,所以沒有問題增加一個規則。 – Lazyexpert

1

似乎你不能在整個應用程序全局做它。但有可能爲插件中定義的所有路由添加前綴:

server.register(require('a-plugin'), { 
    routes: { 
     prefix: '/api/1' 
    } 
}); 

希望這有助於。

以防萬一,如果你要嘗試通過新途徑事件添加基本路徑,它是不是要去工作。

+0

但是這意味着我需要將我的路由包裹在一個插件中? – Bernhard

+0

它確實,但不會有太大的改變。實際上,這是一種模塊化hapi應用程序的方式。 – Alexander

相關問題