Koa.js - Маршрутизация
Веб-фреймворки предоставляют ресурсы, такие как HTML-страницы, сценарии, изображения и т. Д., По различным маршрутам. Koa не поддерживает маршруты в основном модуле. Нам нужно использовать модуль Koa-router, чтобы легко создавать маршруты в Koa. Установите этот модуль, используя следующую команду.
npm install --save koa-router
Теперь, когда у нас установлен Koa-router, давайте рассмотрим простой пример маршрута GET.
var koa = require('koa');
var router = require('koa-router');
var app = koa();
var _ = router(); //Instantiate the router
_.get('/hello', getMessage); // Define routes
function *getMessage() {
this.body = "Hello world!";
};
app.use(_.routes()); //Use the routes defined using the router
app.listen(3000);
Если мы запустим наше приложение и перейдем на localhost: 3000 / hello, сервер получит запрос на получение по маршруту «/ hello». Наше приложение Koa выполняет функцию обратного вызова, связанную с этим маршрутом, и отправляет "Hello World!" как ответ.
У нас также может быть несколько разных методов на одном маршруте. Например,
var koa = require('koa');
var router = require('koa-router');
var app = koa();
var _ = router(); //Instantiate the router
_.get('/hello', getMessage);
_.post('/hello', postMessage);
function *getMessage() {
this.body = "Hello world!";
};
function *postMessage() {
this.body = "You just called the post method at '/hello'!\n";
};
app.use(_.routes()); //Use the routes defined using the router
app.listen(3000);
Чтобы проверить этот запрос, откройте свой терминал и используйте cURL для выполнения следующего запроса
curl -X POST "https://localhost:3000/hello"
Особый метод, all, предоставляется express для обработки всех типов http-методов на определенном маршруте с использованием одной и той же функции. Чтобы использовать этот метод, попробуйте следующее -
_.all('/test', allMessage);
function *allMessage(){
this.body = "All HTTP calls regardless of the verb will get this response";
};