在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
这样就可以自动化注册路由了