Мне было просто интересно, по каким причинам фабричные функции не будут рекомендованы, например, я мог бы экспортировать функцию, которая делает все для функциональности модуля, как, например, для некоторого модуля xyz определено так, что
function factory(a, b, c, d) {
let router = require("express").Router();
router.post("/dosomething", function(req,res) {
// all the logic for this route handling goes here
if(condition a) {
res.send("some response");
}
if(condition b) {
res.send("different response");
}
});
router.get("/getsomething",function (req,res){
//all the logic this route goes here
if(condition a) {
res.send("some response");
}
if(condition b) {
res.send("different response");
}
});
return router;
}
module.exports = factory
и этот модуль требуется в index.js, как и
let app = express();
app.use("/jobsapi", require("./xyz)(a, b, c, d));
Мне известен альтернативный способ отдельного управления маршрутами и отделения кода бизнес-логики от маршрутов, который представляется легко управляемым по сравнению с этим подходом, но я хочу знать в технических аспектах, с какими проблемами могут столкнуться используя этот подход, когда кодовая база, обернутая фабричной функцией, огромна и не разделима.