Routes hapi中的可选路由模式

Routes hapi中的可选路由模式,routes,optional-parameters,hapijs,Routes,Optional Parameters,Hapijs,我在这里没有看到可选标记的示例 虽然我看到了这样的例子:“/home/token/{value?}”但我没有看到一种方法:“/home/optionalToken/{optionalValue?}/optionalOtherToken/{optionalOtherValue?}” 有没有办法在更复杂的模式中声明路径的可选部分 具体来说,我想声明:“/{contentType}/page/{pageNumber?}/limit/{limitNumber?}”其中page,pageNumber,li

我在这里没有看到可选标记的示例

虽然我看到了这样的例子:
“/home/token/{value?}”
但我没有看到一种方法:
“/home/optionalToken/{optionalValue?}/optionalOtherToken/{optionalOtherValue?}”

有没有办法在更复杂的模式中声明路径的可选部分


具体来说,我想声明:
“/{contentType}/page/{pageNumber?}/limit/{limitNumber?}”
其中
page
pageNumber
limit
limitNumber
都是路径的可选部分。

参数名称后面的可选“?”后缀表示可选参数(仅当参数位于路径末端或仅覆盖“/a{param?}/b”中的部分段时才允许)

但是,通过多次使用不同的路径注册相同的路由,您可能能够实现相同的最终结果。例如:

var routeOptions = {
    method: "GET",
    handler: function(request, reply) {
        if (request.params.limitNumber) {
            ...
        }

        if (request.params.pageNumber) {
            ...
        }

        reply(...);
    }
};

var routes = [
    Hoek.applyToDefaults(routeOptions, {
        path: "/{contentType}"
    }),
    Hoek.applyToDefaults(routeOptions, {
        path: "/{contentType}/page/{pageNumber?}"
    }),
    Hoek.applyToDefaults(routeOptions, {
        path: "/{contentType}/page/{pageNumber}/limit/{limitNumber?}"
    })
];

server.route(routes);