我使用的是MEAN堆栈,在Node / Express中,我主要有3个文件夹:带数据模式的“模型”,带路由功能的“控制器”(中间件)和“路由”,其中使用功能落后。我在app.js中创建了一个“迷你应用” router
对象,该对象将传递给var app = express();
中的app.use('/DNZ', router);
。路由器对象本身被传递给“ Controllers”文件夹中的中间件函数,如下所示:
FAroutes = require('./routes/FA');
FAroutes(router);
在FA控制器所在的./routes/FA
文件夹中,我正在创建路由功能并进行导出:
router.route('/FA')
.get(FAController.list_all_FA)
.post(FAController.create_an_FA)
module.exports = FARoutes;
现在,我的第一个问题是,该“路由器”对象如何收集所有路由,以便它从Controller函数中“注册”(或“保存”)所有路由?
因为我将路由器对象传递给控制器功能,它如何在我的主app.js文件中再次“看到”所有其他已注册的路由?
是因为将路由器对象传递给控制器(FAroutes(router)
),然后又将FARoutes对象导出了吗?是一样的,就像我在做FAroutes = require('./routes/FA');
时所做的内联函数替换主app.js中的FARoutes功能一样吗?这样,我首先导入我的路由器对象,该对象注册了该函数内的所有路由,并使用require
将同一路由器对象再次导入到我的主要app.js函数中?如果我仅像module.exports = router;
那样再次导出路由器对象,就足够了吗?
我遇到的另一个“问题”是,我的主要app.js文件中需要大量功能,但我不确定这是否是好的样式:
FAroutes = require('./routes/FA');
FAroutes(router);
//app.use('/FA',FAroutes);
var FProutes = require('./routes/FP');
FProutes(router);
var DemonstratorRoutes = require('./routes/Demonstrator');
DemonstratorRoutes(router);
var FlexPotenzialRoutes = require('./routes/FlexPotenzial');
FlexPotenzialRoutes(router);
var ProduktRoutes = require('./routes/Produkt');
ProduktRoutes(router);
var PortfolioRoutes = require('./routes/Portfolio');
PortfolioRoutes(router);
var RouteInformationRoutes = require('./routes/RouteInformation');
RouteInformationRoutes(router);
var StatusRoute = require('./routes/Status');
StatusRoute(router);
var UserRoute = require('./routes/User')
UserRoute(router);
//REGISTER OUR ROUTES -------------------------------
app.use('/DNZ', router);
是否有更好的方法来注册许多路线?