koa中使用require-directory实现路由自动注册

koa中使用require-directory实现路由自动注册

koa中使用require-directory实现路由自动注册

  • 第一步:导入依赖,使用npm导入koa、koa-router、require-directory

  • 第二步:在主程序中加入路由自动注册的代码

    const Koa = require("koa");
    const requireDirectory = require("require-directory");
    const Router = require("koa-router");
    
    const app = new Koa();
    
    // 第一个参数固定是module,第二个参数是要注册的router的相对路径,第三个参数是注册每个路由之前执行的业务代码
    requireDirectory(module, "./api/v1", {
        visit: (obj) => {
            // 判断当前对象是否是一个Router,这种判断方式很简单,只适用于导出时没有使用大括号的方式,如果使用了大括号,这里的判断逻辑相对就会复杂一些
            if(obj instanceof Router) {
                app.use(obj.routes());
            }
        }
    })
    
  • 第三步:编写路由

    路由必须放在/api/v1路径下,否则路由就不能自动注册

    const Router = require("koa-router");
    const router = new Router();
    
    router.get("/v1/book/laster", (ctx, next) => {
        ctx.body = {key: ctx.path};
    })
    
    // 这里导出时不能使用花括号,否则第二步的自动注册中的路由判断逻辑就要改
    module.exports = router;
    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章