亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

koa-router路由參數和前端路由的結合詳解

2024-05-06 16:51:04
字體:
來源:轉載
供稿:網友

koa-router 定制路由時支持通過冒號形式在 url 中指定參數,該參數會掛載到 context 上然后可通過 context.params.paramName 方便地獲取。

考察下面的示例:

var Koa = require("koa");var Router = require("koa-router");var app = new Koa();var router = new Router();router.get("/user/:id", async function(ctx, next) { const userId = ctx.params.id; ctx.body = `user id is:${userId}`;});app.use(router.routes()).use(router.allowedMethods());app.listen(3000);console.log("server started at http:localhost:3000");

啟動服務后可看到頁面中展示出了從 url 中獲取到的 id 參數。

koa-router,路由參數,前端路由

路由參數的獲取展示

現在來考慮另一種情況,即路由中支持前端路由的情況。

即把現在的 url 由 /user/:id 的形式擴展成 /user/:id/foo/bar,這里 /foo/bar 部分可以是任何路由,作為前端處理的路由部分。

為了實現這樣的前端路由部分,服務端路由的配置需要借助正則來進行,

- router.get("/user/:id", async function(ctx, next) {+ router.get(["/user/:id", ///user//([/w|/d]+)//.*/], async function(ctx, next) { const userId = ctx.params.id; ctx.body = `user id is:${userId}`;});

這里將路由中 url 由單個字符串變成了數組形式,第一個還是原來的路由,這樣正常的通過 /user/1 形式過來的頁面能命中該路由。同時添加 ///user//([/w|/d]+)//.*/ 部分,因為正則情況下不再支持路由中通過冒號進行參數的配置,所以這里 /user/ 后跟隨的 id 也需要使用正則來替換掉。

但正則匹配下的路由就不能通過 context.params 來訪問 url 上的參數了。不過好在可通過在正則中定義匹配組(Capturing Groups)的形式來定義參數,即其中 ([/w|/d]+) 括號包裹的部分,稱為一個匹配組,一個匹配組是會自動被掛載到 context.params 上的,只是不像通過冒號定義的參數那樣會有一個名字,這種形式的參數按照匹配到的順序形成一個數組賦值到 context.params,所以訪問第一個匹配組形成的參數可通過 context.params[0] 來獲取。

于是上面的代碼稍加修正后,就能夠正確處理來自命名參數(通過冒號匹配)或正則參數形成的 query 參數了。

- router.get("/user/:id", async function(ctx, next) {+ router.get(["/user/:id", ///user//([/w|/d]+)//.*/], async function(ctx, next) {- const userId = ctx.params.id;+ const userId = ctx.params.id || ctx.params[0]; ctx.body = `user id is:${userId}`;});

最后完整的代碼會是這樣:

var Koa = require("koa");var Router = require("koa-router");var app = new Koa();var router = new Router();router.get(["/user/:id", ///user//([/w|/d]+)//.*/], async function(ctx, next) { const userId = ctx.params.id || ctx.params[0]; ctx.body = `user id is:${userId}`;});app.use(router.routes()).use(router.allowedMethods());app.listen(3000);console.log("server started at http:localhost:3000");

此時訪問以下連接進行測試,

  • http://localhost:3000/user/1
  • http://localhost:3000/user/2/foo
  • http://localhost:3000/user/3/foo/bar

均能正確命中頁面并成功獲取到路由中的參數。

koa-router,路由參數,前端路由

正則路由及路由參數的獲取

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产69精品久久久久9999| 久久午夜a级毛片| 日韩电影大全免费观看2023年上| 麻豆国产va免费精品高清在线| 国产精彩精品视频| 国产精品海角社区在线观看| 国产91在线高潮白浆在线观看| 国产亚洲精品久久久久久777| 欧洲精品毛片网站| 欧美大成色www永久网站婷| 国产成人午夜视频网址| 日韩精品www| 成人天堂噜噜噜| 亚洲欧美在线一区| 久久伊人91精品综合网站| 2020久久国产精品| 一个人看的www欧美| 国内外成人免费激情在线视频网站| 久久精品一偷一偷国产| 91地址最新发布| 九九热这里只有精品6| 91精品国产免费久久久久久| 国产欧美在线观看| 国产午夜精品免费一区二区三区| 97久久久免费福利网址| 九色成人免费视频| 情事1991在线| 欧美成人精品在线观看| 国产丝袜精品视频| 26uuu国产精品视频| 亚洲剧情一区二区| 97视频在线播放| 日韩av免费看网站| 精品国产依人香蕉在线精品| 亚洲最大的av网站| 伊人青青综合网站| 精品成人在线视频| 成人黄色大片在线免费观看| 精品自在线视频| 国产精品福利在线| 欧美三级xxx| 欧美日韩国产麻豆| xx视频.9999.com| 欧美又大粗又爽又黄大片视频| 久久久久久久电影一区| 91av免费观看91av精品在线| 欧美一区二区三区精品电影| 久久久亚洲网站| 日韩电影免费观看在线观看| 日韩一级裸体免费视频| 国产精品18久久久久久麻辣| 日韩免费在线播放| 成人免费淫片视频软件| 91亚洲精品在线| 亚洲国内高清视频| 久久亚洲春色中文字幕| 欧美精品videos| 精品一区二区亚洲| 98视频在线噜噜噜国产| 66m—66摸成人免费视频| 国产一区av在线| 久久成人18免费网站| 国产成人久久久精品一区| 日韩福利在线播放| 欧美日韩爱爱视频| 在线观看视频99| 欧美乱大交xxxxx| 国产成人精品a视频一区www| 一区二区三区高清国产| 综合久久五月天| 成人黄色免费看| 成人免费看黄网站| 欧美视频一二三| 欧美黑人xxxⅹ高潮交| 欧美一级片久久久久久久| 国产精品美女久久| 91av成人在线| 亚洲sss综合天堂久久| 国产精品成人播放| 亚洲精品美女网站| 久久精品久久久久久国产 免费| xxxx欧美18另类的高清| 国产99视频精品免视看7| 成人黄色午夜影院| 国产在线不卡精品| 97国产在线观看| 欧美性猛交99久久久久99按摩| 亚洲精品久久久久国产| 日韩中文字幕不卡视频| 97视频在线观看免费| 中文字幕国产精品久久| 一区二区三区四区在线观看视频| 78色国产精品| 欧美精品免费在线| 国产性色av一区二区| 精品福利在线视频| 欧美另类极品videosbestfree| 青草青草久热精品视频在线网站| 日韩亚洲欧美中文在线| 国产精品视频yy9099| 亚洲午夜精品久久久久久性色| 国产欧亚日韩视频| 欧美性少妇18aaaa视频| 欧美日韩性视频在线| 亚洲欧美在线免费观看| 日韩视频一区在线| 亚洲男人7777| 国内精品久久久久久久| 91久久久久久久一区二区| 日韩亚洲在线观看| 色综合色综合网色综合| 亚洲美女在线观看| 日韩欧美aⅴ综合网站发布| 亚洲性生活视频| 久久久久久国产三级电影| 91中文字幕一区| 日韩精品在线观看网站| 日韩av免费看网站| 欧美xxxx综合视频| 国产69精品久久久久9999| 亚洲精品福利免费在线观看| 91精品国产免费久久久久久| 91久久国产精品91久久性色| 精品久久久久久亚洲精品| 欧美成人精品在线视频| 久久在线免费观看视频| 668精品在线视频| 久久人人爽人人爽人人片av高清| 97在线观看免费高清| 亚洲精品第一页| 国内精品小视频在线观看| 国产精品国语对白| 国产精品久久久久久久久久免费| 国产丝袜视频一区| 国产亚洲欧美日韩精品| 日韩电影中文字幕在线观看| 欧美精品在线观看| 久久99热精品这里久久精品| 精品精品国产国产自在线| 性欧美视频videos6一9| 国产精品18久久久久久麻辣| 亚洲国产日韩欧美在线动漫| 亚洲天堂av在线播放| 国产精品久久久久久av福利| 这里只有视频精品| 精品久久香蕉国产线看观看gif| 亚洲欧洲日本专区| 在线观看精品自拍私拍| 久久精品视频免费播放| 欧美精品www在线观看| 狠狠躁天天躁日日躁欧美| 欧亚精品中文字幕| 91精品视频免费观看| 日韩精品免费在线观看| 国产精品电影一区| 欧美xxxx综合视频| 成人乱人伦精品视频在线观看| 日本久久中文字幕| 精品一区电影国产| 亚洲精品美女视频| 亚洲一级片在线看| 在线视频日韩精品| 欧美日韩成人在线观看| 国产精品视频一区二区高潮|