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;