是否可以在hapi中定义全局基本路径

时间:2017-09-05 11:07:51

标签: javascript node.js hapijs hapi.js

我希望每个hapi路径路径都以前缀(/api/1)开头,而不是将其添加到每个路由。这可能吗?

路径/api/1/pets而非/pets

应提供以下路线
const Hapi = require('hapi');
const server = new Hapi.Server();
server.route({
    method: 'GET',
    path: '/pets'
})

3 个答案:

答案 0 :(得分:2)

似乎您无法在整个应用程序中全局执行此操作。但是有可能为插件中定义的所有路由添加前缀:

.Click

希望这有帮助。

以防万一,如果您要尝试通过新路线的活动添加基本路径,那么它将不起作用。

答案 1 :(得分:1)

最好的选择是在路径中使用常量 -

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

并在静态constants.js文件中定义常量

答案 2 :(得分:0)

我在Hapi docs中看不到这样的选项。不过,我可以建议你一个小的解决方法。做一些功能:

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

然后以这种方式使用它:

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

<强>更新 作为另一种解决方法,请保持原样,并设置代理Web服务器。例如nginx。