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.paramsURL에서 전달하는 모든 매개 변수에 액세스 할 수 있습니다. 위의 두 가지 경로는 서로 다릅니다. 그들은 결코 겹치지 않을 것입니다. 또한 '/ things'를받을 때 코드를 실행하려면 별도로 정의해야합니다.

패턴 일치 경로

정규식을 사용하여 URL 매개 변수 일치를 제한 할 수도 있습니다. ID가 5 자리 숫자 여야한다고 가정 해 보겠습니다. 다음 경로 정의를 사용할 수 있습니다.

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);

이것은 only5 자리 긴 ID가있는 요청과 일치합니다. 더 복잡한 정규식을 사용하여 경로를 일치 / 검증 할 수 있습니다. 요청과 일치하는 경로가 없으면 응답으로 찾을 수 없음 메시지가 표시됩니다.

예를 들어, 위와 동일한 경로를 정의하면 유효한 URL로 요청하면 다음과 같이됩니다.