koa-touter 路由
正则表达式
koa-router 支持正则,在 JavaScript 中,正则表达式,并不是以字符串形式存在,正则是一个 JavaScript 对象,所以,在传递时,不能以 字符串混用。
一、参数
koa-router 和许多路由组件一样,支持传递参数,如以下示例
1 | router = require('koa-router')(); |
在处理时,可这样获取参数
1 | var user = ctx.params.user; |
二、正则
这样
1 | router = require('koa-router')(); |
将匹配到形如
/blog/2022-03-06 这样的 path
三、参数 + 正则
有时候,需要使用正则匹配,同时,需要访问 路径 作为参数。
你 当然可以自己进行字符串的解析操作。不过,假若路由可将参数与正则合并,岂不是更好
koa-router 可以数组传递表达式,支持如下操作
在正则中定义匹配组:在一个正则表达式中 使用 “()” 括起来的内容称一个匹配组
在添加路由时,
1 | router = require('koa-router')(); |
匹配时,会尝试将后面的匹配组与前面的参数进行配对匹配,所以,在处理方法中,可这样处理参数
1 | var index = async (ctx, next) => { |
image-20220306131508050
结果测试
image-20220306130354558
NOTE:
假若 后面 的参数比 前面 匹配到的参数少,例如,您写了这样的表达式
1 | router = require('koa-router')(); |
在进行参数匹配时,将多出一个参数,此时,如再通过 ctx.params.参数名 这样的方式,将无法取得参数值,在控制台打印 ctx.params 对象,即可知道原因。
在正常匹配时,ctx.params 如下
1 | { year: '2022', month: '03', day: '08' } |
在参数不足时将以数组索引
Author: 哒琳
Permalink: http://blog.jieis.cn/2022/7a5ddeed-1f38-4ad2-9095-6f2974645c82.html

Comments