koa一次导入所有的路由方法

之前我们每个路由都需要写这么一大段代码,如下

const userRouter = require('../router/user_router');
const authRouter = require('../router/auth_router');

app.use(userRouter.routes());
app.use(userRouter.allowedMethods());
app.use(authRouter.routes());
app.use(authRouter.allowedMethods());

那么有什么办法可以解决呢???

第一步首先你要保证,创建的所有路由js文件都在同一个文件夹里面,然后在这个文件夹里面创建一个index.js

const fs = require('fs');

const useRoutes = (app) =>{
  fs.readdirSync(__dirname).forEach((file)=>{
    if(file === 'index.js') return;
    const router = require(`./${file}`);
    app.use(router.routes());
    app.use(router.allowedMethods());
  })
}

然后就可以使用啦

const useRoutes = require('../router/index');
useRoutes(app);

但是由于我们入口js文件大多是这样的嘛,前面都跟着app.

app.use(bodyParser());
app.on('error',errorHandler);

你们可能觉得这样写影响美观,OK,入乡随俗

const useRoutes = require('../router/index');
app.useRoutes = useRoutes;
app.useRoutes();

换成这样写,但是我们要改一下index.js里面的代码,换成这样的即可

const fs = require('fs');

const useRoutes = function() {
  fs.readdirSync(__dirname).forEach((file)=>{
    if(file === 'index.js') return;
    const router = require(`./${file}`);
    this.use(router.routes());
    this.use(router.allowedMethods());
  })
}

猜你喜欢

转载自blog.csdn.net/weixin_45389051/article/details/113731261