【发布时间】:2019-12-25 12:58:16
【问题描述】:
我正在创建平均堆栈应用程序。如何创建结构化后端源 喜欢:控制器,模型,路由..等使用 express js。我需要一些例子吗?
【问题讨论】:
-
这能回答你的问题吗? ExpressJS How to structure an application?
标签: node.js express mean-stack
我正在创建平均堆栈应用程序。如何创建结构化后端源 喜欢:控制器,模型,路由..等使用 express js。我需要一些例子吗?
【问题讨论】:
标签: node.js express mean-stack
在我们的项目中,我们有这样的结构:
server/
/common
/config
/controllers
/middlewares
/models
/routes
/tests
在 common 目录下,可以保存所有常用的辅助函数或常量。
在名称声称的配置目录中,您可以放置所有配置。
在控制器中,您保留自己的控制器。
Middlewares 目录是您可以在其中保存要在确切控制器之前运行的自定义中间件的位置。
模型是您保存架构的地方。
Routes 是您保留路线/端点的地方。
测试是您保存测试的地方。
【讨论】:
实际上,express 没有“正确”的结构。但是有很多推荐的方法。这取决于你。我建议您阅读有关构建 NodeJS 项目的信息。但是对于您的情况,我建议如下:
public
views
models
routes
- index.js # This will hold all routes coagulated into one.
utils # Utility methods expressed as functions so that you can import them individually
app.js # This will hold all express bootstrapping code.
对于阅读材料,我将推荐以下内容:
最后值得注意的是,这些只是建议,最终结构将是最适合您的项目、客户和团队的结构。
【讨论】:
首先,没有一种方法可以做事。
根据我的经验,最好按业务功能而不是技术类别进行区分。为什么?因为它提供了更多的上下文,将功能层面的东西放在一起,而不是技术层面。此外,这使您不必在目录结构的主要位置之间切换。这可以减少认知负担,从而提高您的表现。
例如,假设我们正在构建一个博客网站。您只需要根据功能部件而不是技术部件进行分离。这允许您只打开一个目录,并专注于手头的任务。
当然你会在你的功能模块之间共享一些东西,这些你放在common的地方。
这将是我的方法:
src/
common/
db.js
config.js
profile/
User.model.js
Profile.model.js
register.route.js
register.tpl.js
login.route.js
login.tpl.js
forgotten.route.js
forgotten.tpl.js
post/
Post.model.js
create.route.js
create.tpl.js
edit.route.js
edit.tpl.js
【讨论】: