使用自动化导入路由
使用自动化导入路由文件,就不需要自己一个一个导入了
更改路由文件命名格式,以api开头 或者 以 my开头,用于判断是否需要token认证
比如 router/user.js 改成 apiUser.js文件 upload.js 改成 myUpload.js
封装自动化导入函数
其实就是用到node的fs模块,使用fs.readdirSync()方法获取目录下的所有文件名称组成的数组,拼接路径,然后使用require()导入,再使用app.use()进行路由注册
// utils/createRouter.js
const fs = require('fs')
/**
* 挂载路由函数
* @param {object} app serve实例
* @param {string} path 路由文件所在目录绝对路径
* @param {string} dir 路由文件所在目录
*/
const cerateRouter = (app, path, dir) => {
const routerDir = fs.readdirSync(dir) // 所有的路由文件名称组成的数组
routerDir.forEach(item => {
const url = path + '\\' + item
const router = require(url)
item.startsWith('api') ? app.use('/api', router) : app.use('/my', router)
})
}
module.exports = cerateRouter
如何使用?
在app.js中 导入函数并执行
const createRouter = require('./utils/createRouter') // 挂载路由函数
// __dirname是一个node变量,表示当前执行文件所在目录
createRouter(app, __dirname + '\\router', 'router') // 调用,并传参
评论 (0)