使用 koa-router 构建 RESTful API
发布时间:2025-05-05 | 分类:路由与请求处理
安装 koa-router
npm install @koa/router
基本路由定义
const Koa = require('koa');
const Router = require('@koa/router');
const app = new Koa();
const router = new Router();
router.get('/', async (ctx) => {
ctx.body = '首页';
});
router.get('/users', async (ctx) => {
ctx.body = [{ id: 1, name: '张三' }];
});
router.get('/users/:id', async (ctx) => {
ctx.body = { id: ctx.params.id, name: '张三' };
});
app.use(router.routes());
app.use(router.allowedMethods());
HTTP 方法支持
router
.get('/users', listUsers)
.post('/users', createUser)
.put('/users/:id', updateUser)
.del('/users/:id', deleteUser);
查询参数处理
router.get('/search', async (ctx) => {
const { keyword, page = 1, size = 10 } = ctx.query;
ctx.body = { keyword, page, size };
});
嵌套路由
const userRouter = new Router({ prefix: '/users' });
userRouter.get('/', listUsers);
userRouter.get('/:id', getUser);
userRouter.get('/:id/posts', listUserPosts);
app.use(userRouter.routes());
路由中间件
// 特定路由的中间件
router.get('/admin', authMiddleware, adminDashboard);
// 多个中间件
router.post('/upload', checkFile, saveFile, returnUrl);