【发布时间】:2015-12-08 11:51:21
【问题描述】:
我是开发 MEAN 应用程序的新手,我来自 Laravel 结构来开发 Web 应用程序,我不喜欢 Laravel 不是那么模块化,一切都是分开的,尤其是模型、视图和控制器,要在构建大型应用程序时滚动很多次的文件夹中导航...
我的问题是关于 MEAN 堆栈下的 Express,我正在寻找的是一种结构,我为应用程序的每个实体创建模块,例如:
我有三个模块:users、questions和answers;每个模块将包含该特定模块的路由、模型和控制器,例如:
├── node_modules
├── src
│ ├── client
│ │ └── ... //Frontend things managed by angular (like views, etc...)
│ └── server
│ ├── modules //By module i mean an entity
| | ├── users
| | | ├── users.model.js
| | | ├── users.controller.js
| | | ├── users.routes.js
| | | └── index.js
| | ├── questions
| | └── answers
| ├── config
| └── etc... //Suggestions please...
|
├── package.json
└── server.js
我如何设置该结构?到目前为止,我发现 this tutorial 关于模块化 Express 应用程序,但我想扩展它,以便我保持它干燥,并利用 LIFT principle John Papa 在他的 Angular Style Guide 中描述但在后端。
我为什么要问这个?简单,我不喜欢滚动浏览大文件夹来打开一个文件,然后再次滚动打开另一个相关文件,我希望使用易于维护、易于理解等的结构......
如果可能的话,有人可以解释一个如何使用这种结构设置应用程序并将其上传到 github 的示例吗?
【问题讨论】:
-
我建议不要拥有多个 node_modules 文件夹。这样做意味着你实际上有嵌套的应用程序,并且每个 node_modules 文件夹都需要它自己的 package.json。
-
我使用 MySQL 作为 db 而不是 MongoDB,所以我使用 sequelize 作为 ORM
-
你的结构对我来说看起来不错,除了嵌套的 node_modules 文件夹。
-
@KevinB 谢谢,我不知道如何设置它以使用它,这就是我正在努力的地方
-
与什么一起工作?嵌套的节点模块文件夹?我也没有,我也不想探索它。对我来说似乎是一个非常糟糕的做法。如果我走那条路,我会改为将每个模块开发为完全安装到根 node_modules 文件夹中的单独模块。
标签: node.js express dry mean-stack