具有默认值的 JavaScript 路由

JavaScript Routes with Default Values

本文关键字:JavaScript 路由 默认值      更新时间:2023-09-26

是否有任何 JavaScript 路由库支持路由参数的默认值?这是我所追求的一个例子

route = /example/{pagenumber}/{pagesize}
defaults = { pagenumber: 0, pagesize: 0}

这应与以下所有路由匹配并提供显示的值

  1. /示例/ 与值匹配 { 页码: 0, 页面大小: 0}
  2. /
  3. example/1/ 与值匹配 { 页码: 1, 页面大小: 0}
  4. /
  5. example/1/5 与值匹配 { 页码: 1, 页面大小: 5}
我不知道

任何具有默认参数的库,但是您可以做的是在匹配路由时调用的处理程序函数中设置默认值。

假设handlerFunc已向路由器注册以处理路由/example/{pageNumber}/{pageSize},此外,路由器允许路由中的命名参数,并且足够智能以匹配以下URL:

  1. /example
  2. /example/1
  3. /example/1/5

然后,您的处理程序函数可以执行以下操作:

function handlerFunc(params) {
    // If URL params were set, use them, otherwise use default value 0.
    var pageNumber = params.byName("pageNumber") || 0;
    var pageSize = params.byName("pageSize") || 0;
    // The rest of your code here ...
}

此代码假定params传递给handlerFunc,并具有一个名为 byName 的方法,该方法返回命名参数的值。如果 params 是一个简单的数组,您可以使用 params[0]params[1] 访问其值。