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;