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:
We can also have multiple different methods at the same route. For example,
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:
npm install --save koa-routerNow 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.

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"

_.all('/test', allMessage); function *allMessage(){ this.body = "All HTTP calls regardless of the verb will get this response"; };
No comments:
Post a Comment