express js的正确结构是啥?
Posted
技术标签:
【中文标题】express js的正确结构是啥?【英文标题】:What is the correct structure for express js?express js的正确结构是什么? 【发布时间】:2019-12-25 12:58:16 【问题描述】:我正在创建平均堆栈应用程序。如何创建结构化后端源 喜欢:控制器,模型,路由..等使用 express js。我需要一些例子吗?
【问题讨论】:
这能回答你的问题吗? ExpressJS How to structure an application? 【参考方案1】:在我们的项目中,我们有这样的结构:
server/
/common
/config
/controllers
/middlewares
/models
/routes
/tests
在 common 目录下,可以保存所有常用的辅助函数或常量。 在名称声称的配置目录中,您可以放置所有配置。 在控制器中,您保留自己的控制器。 Middlewares 目录是您可以在其中保存要在确切控制器之前运行的自定义中间件的位置。 模型是您保存架构的地方。 Routes 是您保留路线/端点的地方。 测试是您保存测试的地方。
【讨论】:
【参考方案2】:实际上,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.
对于阅读材料,我将推荐以下内容:
Structure of a NodeJS API Project
NodeJS Project structure
Bulletproof NodeJS Structure最后值得注意的是,这些只是建议,最终结构将是最适合您的项目、客户和团队的结构。
【讨论】:
【参考方案3】:首先,没有一种方法可以做事。
根据我的经验,最好按业务功能而不是技术类别进行区分。为什么?因为它提供了更多的上下文,将功能层面的东西放在一起,而不是技术层面。此外,这使您不必在目录结构的主要位置之间切换。这可以减少认知负担,从而提高您的表现。
例如,假设我们正在构建一个博客网站。您只需要根据功能部件而不是技术部件进行分离。这允许您只打开一个目录,并专注于手头的任务。
当然你会在你的功能模块之间共享一些东西,这些你放在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
【讨论】:
以上是关于express js的正确结构是啥?的主要内容,如果未能解决你的问题,请参考以下文章
使用 res.header express node js 的数组的正确方法是啥
此代码构造的名称是啥:条件? true_expression: false_expression