Thursday, March 2, 2017

Koa.js - Routing

Web frameworks provide resources such as HTML pages, scripts, images, etc. at different routes. Koa does not support routes in the core module. We need to use the koa-router module to easily create routes in koa. Install this module using:

npm install --save koa-router
Now that we have koa-router installed, lets look at a simple GET route example:
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);
If we run our application and go to localhost:3000/hello, the server receives a get request at route "/hello", our koa app executes the callback function attached to this route and sends "Hello World!" as the response.
Hello We can also have multiple different methods at the same route. For example,
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);
To test this request, open up your terminal and use cURL to execute the following request
curl -X POST "https://localhost:3000/hello"
Curl request A special method, all, is provided by express to handle all types of http methods at a particular route using the same function. To use this method, try the following:
_.all('/test', allMessage);

function *allMessage(){
 this.body = "All HTTP calls regardless of the verb will get this response";
};

No comments:

Post a Comment