- Koa.js 教程
- Koa.js - 主页
- Koa.js - 概述
- Koa.js - 环境
- Koa.js - 你好世界
- 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 - 会话
- 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://localhost: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://localhost: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);
请注意,这只会匹配具有 5 位长 id 的请求。您可以使用更复杂的正则表达式来匹配/验证您的路线。如果您的路由均不匹配请求,您将收到“未找到”消息作为响应。
例如,如果我们定义与上面相同的路由,则在使用有效 URL 请求时,我们会得到 -