- 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://127.0.0.1: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://127.0.0.1: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请求时,我们将得到:
广告