大型项目是一般不会把路由写入app.js里,所以就有了路由分离,目录分离,更好管理代码模块。
以两个模块作为分离案例:
目录结构:
index.js
// 引入
const Router = require('koa-router');
const router = new Router();
// 等价
const router = require('koa-router')();
const router = require('koa-router')();
//路由
router.get('/login', async ctx => {
await ctx.render('login', { message: '' })
});
// 主界面
router.get('/main', async ctx => {
await ctx.render('index', {})
})
module.exports = router;
por.js
路由前缀:router.prefix('/pro');
(更好管理文件路径)
const router = require('koa-router')();
// 路由前缀
router.prefix('/pro');
// 商品列表
router.get('/list', async ctx => {
await ctx.render('list', {})
});
// 详情
router.get('/detail', async ctx => {
await ctx.render('detail', {})
});
module.exports = router;
app.js
1、引入模块
const index = require('./routes/index');
const pro = require('./routes/pro');
2、配置路由中间件
app.use(index.routes(),index.allowedMethods());
app.use(pro.routes(),pro.allowedMethods());
网友评论