后台koa-router路由越来越多,api下的router必须通过以下方式导入,如何方便快捷的导入api下的所有文件呢?这次记录一下ifIntroducekoa-routerone-timeloopconstbook=require('./app/api/v1/book')constclassic=require('./app/api/v1/classic')//...app.use(book.routes(),book.allowedMethods())app.use(classic.routes(),classic.allowedMethods())//...文件目录koa-demo/|-api/|-books.js|-classic.js|-users.js|-articles.js|-package.json|-app.js导入routerapp.js的传统方式constKoa=require('koa')constapp=newKoa()constbook=require('./app/api/v1/book')constclassic=require('./app/api/v1/classic')app.use(book.routes(),book.allowedMethods())app.use(classic.routes(),classic.allowedMethods())app.listen(3333)require-directoryimportrequire-directory递归迭代指定目录并返回这些模块。随着github上文件的增多,如何高效的开发才是我们想要追求的。首先,npminstallrequire-directoryapp.jsconstKoa=require('koa')constapp=newKoa()constRouter=require('koa-router')//使用require-directory加载路由文件夹下的所有路由器。constrequireDirectory=require('require-directory')//加载所有路由并自动加载代码constmodules=requireDirectory(module,'./api',{visit:whenLoadModule})functionwhenLoadModule(obj){if(objinstanceofRouter){app.use(obj.routes(),obj.allowedMethods())}}app.listen(3333)路由文件在传统的方式写books.jsconstRouter=require('koa-router')constrouter=newRouter()router.get('/v1/book/latest',(ctx,next)=>{ctx.body={key:'book'}})module.exports=router关于我你可以扫一扫并添加下方微信并关注Sol加入交流群,给我提意见,交流学习。如果对你有帮助,送个小星星给我吧(づ ̄3 ̄)づ╭?~转载请联系作者!
