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.

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"

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