koa教程2 路由自动注册
如何自动引入router文件夹下的路由文件,并且自动use注册?
我们可以手动引入并注册,但是过于麻烦,最原始的方式就是自己通过读取资源的方式获取,但是已经有插件做这个事件了,省事就直接安装对应的插件即可。
yarn add require-directory
安装完毕后引入并使用:
const Koa = require("koa");
const Router = require("koa-router");
const requireDirectory = require("require-directory");
const app = new Koa();
requireDirectory(module, "./router", {
visit: (router) => {
if (router instanceof Router) {
app.use(router.routes());
}
}
});
app.listen(8080);
requireDirectory 接收三个参数:
- module 模块对象,因为引入的是模块
- 相对路径地址,可以是目录地址,也可以是具体某个js文件,但是具体某个文件的话就毫无意义了,如果是目录的话,他会自动获取该目录下的所有文件,哪怕目录下面还有目录
- 高级判断,每引入一个模块就会触发一次该方法,将模块对象作为参数传入
我们就判断这个模块是不是奴属于Router对象,是的话就使用use注册。为了达到这个效果,之前的路由文件导出时,就需要改为导出router对象。
例:
const Router = require("koa-router");
const router = new Router();
router.get("/test1", (ctx, next) => {
ctx.body = "test1";
console.log("test1")
});
module.exports = router;
如果导出的是对象,{}
这种形式,if的判断可能需要更加复杂一些,这个就按照自己的需求写,一般我们就约定俗成的,默认导出router对象。
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据