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;
    

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