nodejs 通过 require-directory 批量注册路由
我这里用的是koa2
😊文件目录
|-node-koa2 //整体文件
--care
--init.js //批量注册路由
--router // 路由
--user.js
--app.js
--package.json
--yarn.locak
👌app.js
const Koa = require('koa2');
const app = new Koa();
const { Init } = require('./core/init');
const bodyParser = require('koa-bodyparser')
// 端口号
const port = 4004;
// 处理post请求的数据
app.use(bodyParser())
// 批量注册路由 (在core文件下写好后 在这里调用 并传入app 参数)
Init.init(app);
// 监听端口
app.listen(port, () => {
console.log(`server is running at http://localhost:${port}`)
})
😜init.js
/**
* 批量注册路由
*/
const requireDirectory = require('require-directory');
// 获取当前目录
const currentDir = process.cwd();
// router 是路由文件夹名称
const path = `${currentDir}/router`
class Init {
static init(app) {
requireDirectory(module, path, {
visit: visitor,
})
// 这里的rot就是 router文件下导出的路由 (例如 user )
function visitor(rot) {
/**
* 用中间件启动路由
* router.routes() 启动路由
* router.allowedMethods() 允许任何请求
*/
app.use(rot.routes(), rot.allowedMethods());
}
}
}
module.exports = {
Init
};
users.js
const Router = require('koa-router');
const user = new Router();
// 根目录
user.prefix('/user')
user.post('/login', async ctx=>{
const data = ctx.request.body;
ctx.body = {
msg: '登录成功',
code: 200,
success: true,
data,
};
})
module.exports = user;
🎉做完这些之后 在router文件夹下 写路由文件,可以直接使用了
(例如我这个:http://localhost:4004/user/login )
附: 也可以直接去我的github 上下载代码 https://github.com/start-point/react-admin-koa2