说明

有时候路由太多了 一个index.js页面看着很凌乱 所以我们把它拆分出来 分类存放 修改也好看

使用到的是require-directory模块

Tips:可以实现一个目录中文件的批量导入 就是一个文件夹下面的所有文件都会被批量导入 包括再在这个文件夹建立一个文件夹 这个文件夹下的文件也会被导入 详情看最下面的图片箭头图

  1. yarn add require-directory

使用的模块

image.png

config index.js

image.png

  1. const render = require('koa-art-template');
  2. const requireDir=require("require-directory")
  3. const path = require("path")
  4. const Router=require("koa-router")
  5. function initProject(app) {
  6. requireDir(module, "../routers", { visit: loadRoutes })
  7. //导入这个require-directory
  8. //第一个参数是module 第二个是路由的路径 第三个是visit对象 它触发一个函数 函数名可以自定义
  9. function loadRoutes(obj) {
  10. console.log(obj instanceof Router); //判断这三个路由是否都是Router的实例
  11. if (obj instanceof Router) {
  12. app.use(obj.routes())
  13. }
  14. }
  15. render(app, {
  16. root: path.join(process.cwd(), 'pages'),
  17. extname: '.html',
  18. debug: process.env.NODE_ENV !== 'production'
  19. });
  20. }
  21. module.exports=initProject

_E5{7VDU9)7GNX(]P0JA~I3.png%MBMJFQSICB2F5@@Y{@C_RG.png

routers

home/home.js

  1. const router = require("koa-router")()
  2. router.get("/home", async ctx => {
  3. await ctx.render("home")
  4. })
  5. module.exports=router

home/login.js

  1. const router = require("koa-router")()
  2. router.get("/login", async ctx => {
  3. await ctx.render("login")
  4. })
  5. module.exports=router

music.js

  1. const router = require("koa-router")()
  2. router.get("/music", async ctx => {
  3. await ctx.render("music")
  4. })
  5. module.exports=router

index.js

  1. const koa =require("koa")
  2. const app = new koa()
  3. const initProject = require("./config")
  4. initProject(app)
  5. app.listen(8080)

html是空的