KoaJS教程

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 构建 ID
您可以用其他任何内容替换 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
URL Building Complex
您可以使用 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 的请求。您可以使用更复杂的正则表达式来匹配/验证您的路线。如果您的路由都与请求不匹配,您将收到一条 Not found 消息作为响应。
例如,如果我们定义与上面相同的路由,在使用有效 URL 请求时,我们会得到-
URL匹配正确
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4