前端/移动开发面试题更新 2026-08-05

请描述在 Koa 框架中实现路由功能的具体方法,包括实现原理和常用方式。

前端/移动开发编码实现技术原理Koa

考察说明

考察候选人是否掌握 Koa 框架下的路由实现原理和常用实践。

回答思路

  1. 【回答框架 1】Koa 路由基于中间件机制,每个路由对应一个中间件函数,通过 app.use 或 koa-router 等库注册。路由匹配通常靠请求方法和路径。
  2. 【回答框架 2】原生实现时,使用 ctx.path 和 ctx.method 匹配,例如 if (ctx.method === 'GET' && ctx.path === '/') 返回响应。路由库则将匹配逻辑封装成中间件,如 koa-router 使用 path-to-regexp 解析路径。
  3. 【回答框架 3】注册路由后,通过 app.use(router.routes()).use(router.allowedMethods()) 挂载,allowedMethods 用于处理不支持的请求方法(如返回 405)。
  4. 【回答框架 4】路由参数通过冒号定义,如 /users/:id,在 ctx.params 获取。中间件执行顺序影响路由匹配,常将通用中间件放在路由之前。
  5. 【关键点 1】Koa 路由本质是中间件,按路径和方法匹配。
  6. 【关键点 2】常用 koa-router 库,支持路由参数和多个中间件。
  7. 【关键点 3】app.use(router.routes()) 挂载路由,allowedMethods 处理 OPTIONS/405。
  8. 【易错点 1】忘记挂载 router.allowedMethods() 可能导致方法错误时返回 404 而非 405。
  9. 【易错点 2】中间件顺序错误可能导致路由匹配被前置逻辑拦截。