
- Koa.js 教程
- Koa.js - 首頁
- Koa.js - 概述
- Koa.js - 環境配置
- Koa.js - Hello World
- Koa.js - 生成器
- Koa.js - 路由
- Koa.js - URL構建
- Koa.js - HTTP 方法
- Koa.js - 請求物件
- Koa.js - 響應物件
- Koa.js - 重定向
- Koa.js - 錯誤處理
- Koa.js - 級聯
- Koa.js - 模板引擎
- Koa.js - 表單資料
- Koa.js - 檔案上傳
- Koa.js - 靜態檔案
- Koa.js - Cookie
- Koa.js - Session
- Koa.js - 身份驗證
- Koa.js - 壓縮
- Koa.js - 快取
- Koa.js - 資料庫
- Koa.js - RESTful API
- Koa.js - 日誌記錄
- Koa.js - 腳手架
- Koa.js - 資源
- Koa.js 有用資源
- Koa.js - 快速指南
- Koa.js - 有用資源
- Koa.js - 討論
Koa.js - URL構建
現在我們可以定義路由了;它們是靜態的或固定的。要使用動態路由,我們需要提供不同型別的路由。使用動態路由允許我們傳遞引數並根據引數進行處理。以下是一個動態路由的示例。
var koa = require('koa'); var router = require('koa-router'); var app = koa(); var _ = router(); _.get('/:id', sendID); function *sendID() { this.body = 'The id you specified is ' + this.params.id; } app.use(_.routes()); app.listen(3000);
要測試它,請訪問https://:3000/123。您將收到以下響應。

您可以將URL中的“123”替換為任何其他內容,它都會反映在響應中。以下是上述內容的複雜示例。
var koa = require('koa'); var router = require('koa-router'); var app = koa(); var _ = router(); _.get('/things/:name/:id', sendIdAndName); function *sendIdAndName(){ this.body = 'id: ' + this.params.id + ' and name: ' + this.params.name; }; app.use(_.routes()); app.listen(3000);
要測試它,請訪問https://:3000/things/tutorialspoint/12345。

您可以使用this.params物件訪問您在URL中傳遞的所有引數。請注意,以上兩者具有不同的路徑。它們永遠不會重疊。此外,如果您想在獲得“/things”時執行程式碼,則需要單獨定義它。
模式匹配路由
您還可以使用正則表示式來限制URL引數匹配。假設您需要id為五位數。您可以使用以下路由定義。
var koa = require('koa'); var router = require('koa-router'); var app = koa(); var _ = router(); _.get('/things/:id([0-9]{5})', sendID); function *sendID(){ this.body = 'id: ' + this.params.id; } app.use(_.routes()); app.listen(3000);
請注意,這將只匹配具有五位數id的請求。您可以使用更復雜的正則表示式來匹配/驗證您的路由。如果您的任何路由都不匹配請求,您將收到“未找到”訊息作為響應。
例如,如果我們定義與上述相同的路由,則在使用有效URL請求時,我們將得到:

廣告