Learn KOA-JS with Real Code Examples
Updated Nov 25, 2025
Code Sample Descriptions
1
Koa.js Simple Counter API
const Koa = require('koa');
const Router = require('@koa/router');
const bodyParser = require('koa-bodyparser');
const app = new Koa();
const router = new Router();
let count = 0;
router.get('/counter', ctx => {
ctx.body = { count };
});
router.post('/counter/increment', ctx => {
count++;
ctx.body = { count };
});
router.post('/counter/decrement', ctx => {
count--;
ctx.body = { count };
});
router.post('/counter/reset', ctx => {
count = 0;
ctx.body = { count };
});
app.use(bodyParser());
app.use(router.routes()).use(router.allowedMethods());
app.listen(3000, () => {
console.log('Koa.js server running on http://localhost:3000');
});
Demonstrates a simple Koa.js REST API with a counter using async functions and middleware.
2
Koa.js Hello World API
const Koa = require('koa');
const app = new Koa();
app.use(ctx => {
ctx.body = { message: 'Hello World' };
});
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
A basic Koa.js REST API returning 'Hello World'.
3
Koa.js JSON Echo
const Koa = require('koa');
const Router = require('@koa/router');
const bodyParser = require('koa-bodyparser');
const app = new Koa();
const router = new Router();
router.post('/echo', ctx => {
ctx.body = ctx.request.body;
});
app.use(bodyParser());
app.use(router.routes()).use(router.allowedMethods());
app.listen(3000, () => {
console.log('Koa.js server running on http://localhost:3000');
});
A POST endpoint that echoes back JSON data.
4
Koa.js Query Parameter Example
const Koa = require('koa');
const Router = require('@koa/router');
const app = new Koa();
const router = new Router();
router.get('/greet', ctx => {
const name = ctx.query.name || 'Guest';
ctx.body = { message: `Hello ${name}` };
});
app.use(router.routes()).use(router.allowedMethods());
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
Demonstrates usage of query parameters in Koa.js.
5
Koa.js Route Parameter Example
const Koa = require('koa');
const Router = require('@koa/router');
const app = new Koa();
const router = new Router();
router.get('/users/:id', ctx => {
ctx.body = { id: ctx.params.id, name: `User ${ctx.params.id}` };
});
app.use(router.routes()).use(router.allowedMethods());
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
An API showing route parameters in Koa.js.
6
Koa.js Middleware Logging
const Koa = require('koa');
const app = new Koa();
app.use(async (ctx, next) => {
console.log(`${ctx.method} ${ctx.url}`);
await next();
});
app.use(ctx => {
ctx.body = { message: 'Check logs for request details' };
});
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
Middleware example to log all incoming requests.
7
Koa.js Async Handler Example
const Koa = require('koa');
const Router = require('@koa/router');
const app = new Koa();
const router = new Router();
router.get('/async', async ctx => {
const data = await new Promise(resolve => setTimeout(() => resolve('Async Response'), 500));
ctx.body = { data };
});
app.use(router.routes()).use(router.allowedMethods());
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
An async route handler returning data after a delay.
8
Koa.js 404 Middleware Example
const Koa = require('koa');
const app = new Koa();
app.use(ctx => {
ctx.status = 404;
ctx.body = { error: 'Not Found' };
});
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
Middleware example to handle 404 responses.
9
Koa.js Error Handling Example
const Koa = require('koa');
const app = new Koa();
app.use(async (ctx, next) => {
try {
await next();
} catch (err) {
ctx.status = err.status || 500;
ctx.body = { error: err.message };
console.error(err);
}
});
app.use(ctx => {
ctx.body = { message: 'Hello Koa' };
});
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
Global error handling middleware example in Koa.js.
10
Koa.js Combined Middleware Example
const Koa = require('koa');
const Router = require('@koa/router');
const bodyParser = require('koa-bodyparser');
const app = new Koa();
const router = new Router();
app.use(async (ctx, next) => {
console.log(`${ctx.method} ${ctx.url}`);
await next();
});
app.use(bodyParser());
router.get('/', ctx => {
ctx.body = { message: 'Welcome to Koa API' };
});
router.post('/echo', ctx => {
ctx.body = ctx.request.body;
});
app.use(router.routes()).use(router.allowedMethods());
app.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});
Combines logging, body parsing, and routes in a single Koa.js app.