2017-09-05 67 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

相关问题