#javascript #node.js #koa #koa-router
#язык JavaScript #node.js #koa #koa-маршрутизатор
Вопрос:
Я использую koa для создания приложения nodejs и пытаюсь оптимизировать.
app.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.js
, home.js
, client.js
stuff.js
'use strict'; const router = require("koa-router")(); router .get("/", async (ctx) =gt; { await ctx.render("stuff", { }); }) module.exports = router;
home.js
'use strict'; const router = require("koa-router")(); router .get("/", async (ctx) =gt; { await ctx.render("home", { }); }) module.exports = router;
client.js
'use strict'; const router = require("koa-router")(); router .get("/", async (ctx) =gt; { await ctx.render("client", { }); }) module.exports = router;
Я думаю, что то, как я написал, все еще очень дилетантски, как это оптимизировать? Спасибо.
Ответ №1:
После исследования я использую следующее решение
app.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) =gt; { fs.readdirSync(__dirname).forEach(file =gt; { 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) =gt; { await ctx.render("home", { }); }) module.exports = router;