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 -