javascript - Node 应用程序架构 : where does express come into node. js

标签 javascript node.js web express

我正在尝试自学如何使用nodejs并用它构建一个web应用程序。在大多数例子中我都会遇到expressJs用作 webFrameWork。我试图阅读相关内容,但我主要找到的是例子。我想了解在使用 Nodejs 时,expressJs 究竟在哪里发挥作用。

我了解了如何使用“纯”node-js ( http://howtonode.org/hello-node ) 创建 helloworld-web-server。

我还了解了如何使用expressJs来实现这一点: http://expressjs.com/starter/hello-world.html

express 只是一种包装器,能够避免 http-boilerplate 代码吗?如果是这样,我应该在什么程度上使用express,在什么程度上应该使用nodes-API?它只是用来做路由吗?或者还有什么?

Express-FAQs我发现它对管理数据库没有帮助,并且没有使用expressJs 创建模型。那么,当使用 Node 和 Express 构建应用程序时,我应该如何处理数据(用户、帖子等,...)?

我尝试进行大量阅读,但我没有清晰的全局,一层抽象在哪一点结束,下一层抽象又从哪开始。我的意思是,我知道expressJs是一个webFrameWork,位于在V8引擎上运行的 Node 网络服务器上,但是我对最终应用程序代码应该架构的内容有点困惑:我是否将nodeJs代码与expressJs代码混合在一起单个 app.js?或者我应该有需要 Express 的特定文件和不需要 Express 的数据库的另一个文件吗?

现在你明白我的意思了: express 是从哪里进入 Node.js 的?它对我有什么作用,而我没有从“纯” Node 获得什么?我不应该从它那里得到什么?

也许我的整个困惑是因为整个事情都是 javascript,并且你没有像这些明确的“语言障碍”那样使事情变得更加明显(例如,我正在考虑 LAMP 堆栈)。或者这正是我应该思考 javascript 的一般方式?就像你真正得到的唯一东西是一个 javascript 解释器,其他所有东西都是我们可以包含的 lib,而expressJs 只是将 nodeJs 作为依赖项?我真的很抱歉我这么模糊。我只是想理清我的心理模型。

最佳答案

express 只是一种包装器,能够避免 http-boilerplate 代码吗?

是的

如果是这样,我应该在多大程度上使用express以及在哪些情况下应该使用nodes-API?

所有请求和响应处理都应通过 Express 完成。另请参阅当您的应用程序中需要提供大量 URL 时,Express Router 如何简化事情

它只是用来做路由吗?或者还有什么?

是的,差不多就是这样。但这就是重点。做一件事,但要把它做好。

那么,当使用 Node 和 Express 构建应用程序时,我应该如何处理数据(用户、帖子等,...)?

看看Loopback

我对最终应用代码的架构有点困惑

您(像我一样)似乎来自 J2EE/Spring 或 Dot NET 世界,其中各种框架试图解决 2 层或 3 层架构 View - 模型 - dao 的完整景观。

这里的风景略有不同。这些框架的设计原则是只做一件事并做好它。因此,整体解决方案变得更加难以达成。

所以现在有

  1. 多个独立框架( Node 包)可用于解决同一问题空间,并且
  2. 所有这些组件必须协同工作才能实现最终的总体解决方案。

因此,这些包的拼接方式没有明确的界限。它的液体。这完全取决于你的特殊问题。因此,这里没有通用的解决方案,也没有明确的边界,什么将在哪里结束,什么将在哪里开始。

你必须做出决定(这是一项艰苦的工作)。这个决策将是一个演进架构的过程,而不是在大爆炸中预先创建架构。

在最初的几天/几个月里,它会遇到多次失败和挫折。

然后阅读Javascript 疲劳

我只是想理清我的心理模型。

但你并不孤单。 :) 我的也不直。我可以向你保证,业内没有多少人能清楚地了解这一点。

关于javascript - Node 应用程序架构 : where does express come into node. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29710626/

相关文章:

javascript - 如何确定 CSS 过渡是否即将发生?

javascript - Async forEach ,Node.js 中重新排列的数组

javascript - Google Analytics PageView 收集哪些数据?

javascript - 在 Windows 上使用 node.js 参数运行 grunt 任务

javascript - FormData 附加嵌套对象

javascript - jQuery live 函数和添加/删除类

web - 社区站点框架建议

javascript - 如何在 JavaScript 中编写返回错误的函数

javascript - 如何移动带有动态添加的类名的 div

javascript - 如何改进我的 MongoDB 结构?