• 我转过几个弯 绕过那个小雨楼
  • 拿着蒲扇摆着衣衫渡着紧箍咒
  • 不问天涯不停留 喝过几壶酒
  • 不过年少白头道义放胸口
  • 倘若明天之后 遥看前尘剑封侯
  • 似那天上神仙无所求
  • 朝朝暮暮君如梦醒十分不为何理由
  • 是真是假是惶恐是无休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 又过了几个弯 算尽天量道莫慌
  • 踏这田园闻这芳草香
  • 跌跌撞撞仗剑天涯折煞不枉无笔良
  • 是梦是幻是温柔是家乡
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 路过这风雨花满楼 片刻都不停留
  • 我本这书生进京赶考留下许多愁
  • 你问有没有时候 我叹这天道默悠悠
  • 能否与我一醉方休
  • 谁能与我一醉方休

koa教程2 路由自动注册

263 0

如何自动引入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 接收三个参数:

  1. module 模块对象,因为引入的是模块
  2. 相对路径地址,可以是目录地址,也可以是具体某个js文件,但是具体某个文件的话就毫无意义了,如果是目录的话,他会自动获取该目录下的所有文件,哪怕目录下面还有目录
  3. 高级判断,每引入一个模块就会触发一次该方法,将模块对象作为参数传入

我们就判断这个模块是不是奴属于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对象。

0
  • 本文分类:Node
  • 本文标签:路由nodekoa自动注册
  • 流行热度:已超过 263 人围观了本文
  • 最后更新:2021年02月11日 - 1时55分32秒
  • 发布日期:2021年02月11日 - 1时55分32秒
  • 版权申明:本文系作者@木灵鱼儿原创发布在木灵鱼儿 - 有梦就能远航站点。未经许可,禁止转载。

相关文章

微信收款码
微信收款码