在Koa2中动态注册路由

在koa中如果使用路由的话,需要在单个路由的js文件中导出,再在app.js一个一个的通过中间件注册使用。这时我们可以通过写一个自动化注册的方法来实现。

1.在router文件夹中创建index.js文件

       注意:router文件夹中文件名需要统一格式 xxx.router.js

const fs = require('fs')

function registerRouters(app) {
  // fs.readdirSync: 拿到当前目录下的所有文件名,返回数组
  const files = fs.readdirSync(__dirname)
  // 遍历所有的文件 自动引入并使用路由组件
  for (const file of files) {
    if (!file.endsWith('.router.js')) continue
    const router = require('./' + file)
    app.use(router.routes())
    app.use(router.allowedMethods())
  }
}

module.exports = registerRouters

2.在app/index.js中引入这个方法并调用

const Koa = require('koa')
const bodyParser = require('koa-bodyparser')
const registerRouters = require('../router')

// 1.创建app
const app = new Koa()

// 2.对app使用中间件
app.use(bodyParser())
registerRouters(app)

// 3.导出 app
module.exports = app

 这样就可以自动化注册路由了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值