我以前没有见过这种特殊的方法(在过去的几天里我一直在挖掘一些)。我一直在研究一些既有脚手架的项目,也有我认为是定制的项目,以了解什么是良好的结构。由于Yeoman的人认为他们的生成器是最佳实践的存储库,所以我很惊讶地看到了一些我在其他地方没有看到的东西。它是先进的有显著的优势还是有趣的有潜在的缺点?我在搜索过程中看到的另一条评论暗示,直接指定你的路由(像routes.js一样)有好处,不像"魔法一样"。
它读取文件系统并根据它找到的内容设置路由:
// Bootstrap routes/api
var routesPath = path.join(__dirname, 'routes');
fs.readdirSync(routesPath).forEach(function(file) {
require(routesPath + '/' + file)(app);
});
它是先进的,有显著的优势还是有趣的,有潜在的缺点?
至少有一个缺点是无法用nexe编译它。
但这是一个可以接受的结构,我以前也见过。
也就是说,生成器本身并不是一个很好的实践。如果你必须一遍又一遍地创建一些东西,你应该把它移到一个单独的模块,而不是写一个生成器。