KOA技术分享

专注 Koa.js 框架的编程知识分享

使用 koa-router 构建 RESTful API

安装 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);
← 上一篇:深入理解 Koa 中间件机制 下一篇:Koa 项目中集成 MySQL 与 Sequelize →