繁体   English   中英

如何优化nodejs koa中的路由器?

[英]How to optimize router in nodejs koa?

我使用koa创建一个nodejs应用程序,并尝试优化。

应用程序.js

'use strict';
const Koa = require("koa");
const app = new Koa();
const Router = require("koa-router");
const router = new Router();

const stuff = require("./router/stuff.js");
router.use("/stuff", stuff.routes());
//more routers like above
const home = require("./router/home.js");
router.use(home.routes());

app.use(router.routes(), router.allowedMethods());
app.listen(port);

文件夹router中有一些路由器文件,例如stuff.jshome.jsclient.js

东西.js

'use strict';
const router = require("koa-router")();
router
    .get("/", async (ctx) => {
        await ctx.render("stuff", {

        });
    })
module.exports = router;

主页.js

'use strict';
const router = require("koa-router")();
router
    .get("/", async (ctx) => {
        await ctx.render("home", {

        });
    })
module.exports = router;

客户端.js

'use strict';
const router = require("koa-router")();
router
    .get("/", async (ctx) => {
        await ctx.render("client", {

        });
    })
module.exports = router;

我觉得我写的方式还是很业余的,怎么优化呢? 谢谢你。

经过研究,我正在使用以下解决方案

应用程序.js

'use strict';
const Koa = require("koa");
const app = new Koa();
const router = require("./router");
router(app);
app.listen(port);

在文件夹router中,使用以下代码添加index.js

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

其他路由器文件相同,例如home.js

'use strict';
const router = require("koa-router")();
router
    .get("/", async (ctx) => {
        await ctx.render("home", {

        });
    })
module.exports = router;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM