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,
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.
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