开发手册 欢迎您!
软件开发者资料库

Koa.js - URL构建

Koa.js URL构建 - 从简单和简单的步骤学习Koa.js,从基本到高级概念,包括概述,环境,Hello World,生成器,路由,URL构建,HTTP方法,请求对象,响应对象,重定向,错误处理,级联,表单数据,文件上传,模板,静态文件,Cookie,会话,身份验证,压缩,缓存,数据库,RESTful API,日志记录,脚手架,资源。

我们现在可以定义路线;它们是静态的或固定的.要使用动态路由,我们需要提供不同类型的路由.使用动态路由允许我们根据它们传递参数和过程.以下是动态路线的示例.

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 Building 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/it1352/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的请求.您可以使用更复杂的正则表达式来匹配/验证您的路由.如果您的路由都不匹配请求,您将收到一条未找到的消息作为响应.

例如,如果我们定义与上述相同的路由,请求使用有效的URL,我们得到 : 去;

URL匹配正确