推荐答案
在 Koa 中使用路由模块化可以通过 koa-router 模块来实现。以下是一个简单的示例,展示如何将路由模块化:
安装
koa-router:npm install koa-router
创建路由模块:
// www.javascriptcn.com code example // routes/user.js const Router = require('koa-router'); const router = new Router(); router.get('/users', async (ctx) => { ctx.body = 'User List'; }); router.get('/users/:id', async (ctx) => { ctx.body = `User ID: ${ctx.params.id}`; }); module.exports = router;在主应用中使用路由模块:
// www.javascriptcn.com code example // app.js const Koa = require('koa'); const userRouter = require('./routes/user'); const app = new Koa(); app.use(userRouter.routes()).use(userRouter.allowedMethods()); app.listen(3000, () => { console.log('Server is running on http://localhost:3000'); });
本题详细解读
1. 安装 koa-router
koa-router 是 Koa 的一个路由中间件,用于处理 HTTP 请求的路由。首先需要通过 npm 安装该模块。
2. 创建路由模块
在 routes/user.js 文件中,我们创建了一个 koa-router 实例,并定义了两个路由:
GET /users:返回用户列表。GET /users/:id:返回指定用户 ID 的信息。
通过 module.exports 将路由实例导出,以便在主应用中使用。
3. 在主应用中使用路由模块
在 app.js 文件中,我们导入了 userRouter 并将其挂载到 Koa 应用上。userRouter.routes() 方法用于注册路由,userRouter.allowedMethods() 方法用于处理不支持的 HTTP 方法(如 POST 请求到只支持 GET 的路由)。
4. 启动应用
最后,通过 app.listen(3000) 启动应用,监听 3000 端口。
通过这种方式,可以将不同的路由逻辑拆分到不同的模块中,使代码更加清晰和易于维护。