Koa.js - tworzenie adresów URL

Możemy teraz zdefiniować trasy; są statyczne lub nieruchome. Aby korzystać z tras dynamicznych, musimy zapewnić różne typy tras. Korzystanie z tras dynamicznych pozwala nam przekazywać parametry i przetwarzać na ich podstawie. Poniżej przedstawiono przykład trasy dynamicznej.

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

Aby to przetestować, przejdź do https://localhost:3000/123. Otrzymasz następującą odpowiedź.

Możesz zastąpić „123” w adresie URL czymkolwiek innym, a zostanie to odzwierciedlone w odpowiedzi. Poniżej znajduje się złożony przykład powyższego.

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

Aby to przetestować, przejdź do https://localhost:3000/things/tutorialspoint/12345.

Możesz użyć this.paramsobiekt, aby uzyskać dostęp do wszystkich parametrów, które przekazujesz w adresie URL. Zauważ, że powyższe dwie mają różne ścieżki. Nigdy się nie pokryją. Również jeśli chcesz wykonać kod, gdy otrzymasz „/ things”, musisz zdefiniować go osobno.

Trasy dopasowane do wzorca

Możesz również użyć wyrażenia regularnego, aby ograniczyć dopasowanie parametrów adresu URL. Powiedzmy, że potrzebujesz, aby identyfikator składał się z pięciu cyfr. Możesz użyć następującej definicji trasy.

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

Zauważ, że to będzie onlydopasuj żądania, które mają 5-cyfrowy identyfikator. Możesz użyć bardziej złożonych wyrażeń regularnych, aby dopasować / zweryfikować swoje trasy. Jeśli żadna z twoich tras nie pasuje do żądania, w odpowiedzi otrzymasz komunikat Nie znaleziono.

Na przykład, jeśli zdefiniujemy te same trasy, co powyżej, na żądanie z poprawnym adresem URL otrzymamy -