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";
};