Introduction to Koa Router
Koa Router is a powerful routing middleware for Koa, a next-generation web framework for Node.js. It provides a flexible and efficient way to handle HTTP requests, making it an essential tool for building scalable web applications.
Basic Usage
To get started with Koa Router, first install it using npm:
npm install @koa/router
Next, import and use Koa Router in your Koa app:
const Koa = require('koa');
const Router = require('@koa/router');
const app = new Koa();
const router = new Router();
router.get('/', (ctx, next) => {
ctx.body = 'Hello, World!';
});
app.use(router.routes());
app.use(router.allowedMethods());
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
Defining Routes
Koa Router allows you to define various types of routes such as GET, POST, PUT, DELETE, and more:
router.get('/get', (ctx, next) => {
ctx.body = 'GET request';
});
router.post('/post', (ctx, next) => {
ctx.body = 'POST request';
});
router.put('/put/:id', (ctx, next) => {
ctx.body = `PUT request with ID: ${ctx.params.id}`;
});
router.delete('/delete/:id', (ctx, next) => {
ctx.body = `DELETE request with ID: ${ctx.params.id}`;
});
Route Parameters
Koa Router supports named parameters and captures their values:
router.get('/users/:id', (ctx, next) => {
ctx.body = `User ID: ${ctx.params.id}`;
});
Query Parameters
You can access query parameters using the ctx.query
object:
router.get('/search', (ctx, next) => {
ctx.body = `Search query: ${ctx.query.q}`;
});
Middleware Support
Koa Router supports middleware, allowing you to add functionality to your routes:
const logger = async (ctx, next) => {
console.log(`${ctx.method} ${ctx.url}`);
await next();
};
router.get('/with-middleware', logger, (ctx, next) => {
ctx.body = 'This route has middleware';
});
Nested Routes
You can use nested routes for better organization:
const nestedRouter = new Router();
nestedRouter.get('/info', (ctx, next) => {
ctx.body = 'Nested route';
});
router.use('/nested', nestedRouter.routes(), nestedRouter.allowedMethods());
Example Koa Application
Below is an example of a Koa application using various introduced APIs:
const Koa = require('koa');
const Router = require('@koa/router');
const app = new Koa();
const router = new Router();
router.get('/', (ctx, next) => {
ctx.body = 'Home Page';
});
router.get('/users/:id', (ctx, next) => {
ctx.body = `User ID: ${ctx.params.id}`;
});
router.post('/users', (ctx, next) => {
ctx.body = 'User created';
});
const nestedRouter = new Router();
nestedRouter.get('/info', (ctx, next) => {
ctx.body = 'Nested route info';
});
router.use('/nested', nestedRouter.routes(), nestedRouter.allowedMethods());
app.use(router.routes()).use(router.allowedMethods());
app.listen(4000, () => {
console.log('Server running on port 4000');
});
Koa Router provides a scalable and flexible way to handle routing in your web application. With its rich API, it enables you to define routes, use middleware, and nest routes, making your development process more efficient.
Hash: 83f0ccdc2064a87b8438a5e7870c6f500d819b93144d1d150a59795106166e1c