Node-App-Architecture:express 从哪里来 node.js
Node-App-Architecture: where does express come into node.js
我正在尝试自学如何使用 nodejs 并用它构建一个 webApp。在我遇到的大多数示例中,expressJs 被用作 webFrameWork。我试图阅读它,但我主要是找到例子。我想了解 exactly expressJs 在使用 nodejs 时的用武之地。
我了解如何使用 'pure' node-js (http://howtonode.org/hello-node) 创建一个 helloworld-web-server。
我还看到了如何使用 expressJs 来实现:
http://expressjs.com/starter/hello-world.html
express 是否只是一种能够避免 http 样板代码的包装器?如果是这样,我应该在多大程度上使用 express,我应该在多大程度上使用 nodes-API?它只是用来做路由吗?或者还有什么?
在 Express-FAQs 中,我看到它无助于处理数据库,并且没有使用 expressJs 创建模型。因此,在使用节点构建应用程序并表达我应该如何处理数据(用户、帖子等...)时?
我尝试大量阅读,但我没有一个清晰的大图抽象层在哪一点结束,下一层恰好从哪里开始.我的意思是我知道 expressJs 是一个 webFrameWork,它位于 V8 引擎上的节点网络服务器 运行 上,但是我对最终应用程序代码的架构有点困惑:我是否混合了 nodeJs 代码在单个 app.js 中使用 expressJs 代码?或者我应该有需要 express 的特定文件和另一个不需要它的数据库?
所以现在你明白我的意思了:
快递从哪里来node.js?我从 'pure' 节点没有得到它对我有什么作用,我不应该从它那里得到什么?
也许我的整个困惑来自于整个事情是 javascript 而你没有像这些明确的 'language-barriers' 这让事情变得更加明显(我正在考虑 LAMP-堆栈)。或者这正是我应该考虑 javascript 的一般方式吗?就像你实际得到的唯一东西是一个 javascript-解释器,其他一切都是我们可以包含的库,并且 expressJs 只是将 nodeJs 作为依赖项?我真的很抱歉这么模糊。我只是想弄清楚我的心智模型。
Node 本身基本上可以让您在服务器上编写 Javascript,除此之外,其他的不多。它有一些基本的 HTTP 功能,但我不想单独使用这些功能来制作 Web 应用程序。 Express 就像 Node 生态系统的 Rails 等价物(魔法更少)。它处理路由、cookie 和大多数其他与网络相关的内容。
您可能想看看 Connect, the de facto standard library for middleware. As for data modeling, most people in the Node world use mongodb with Mongoose。实际上,您最终会在有意义的地方使用 Node 内置函数,并在需要其他功能的地方插入小型库。如果您有任何其他问题,我很乐意提供帮助。
本质上,Node 只是一个 JavaScript 解释器,打包了一堆帮助程序库和一个命令行界面工具。 Node 打包了一堆实用程序库,用于执行常见的开发任务,例如与文件系统交互或发送 HTTP 请求。 Connect 是 Node 之上的抽象,提供中间件层。 Express 是 Connect 和 Node 之上的抽象,可以更轻松地构建某些类型应用程序,主要是使用 http、websockets、复杂路由、会话和 cookie 管理、身份验证等的 Web 应用程序
'same level of abstraction' 有一些竞争对手,如 Express — 其中一个比较受欢迎的是 Hapi(非常类似于express),如果你正在寻找一个基于 Node 的类似 Rails 的框架,那么看看 SailsJS、Locomotive 或 Meteor。
Express 加快了您的开发工作,并有助于更好地为您构建代码布局。
如果您是 node.js 的新手,您可以立即轻松构建一个快速服务器。它也很容易扩展。
通常人们将其他一些流行的节点模块与 express 结合使用——connect、passport、ejs、body-parser、connect-redis、mongoose 等,具体取决于您的使用场景以及与哪些集成
其他服务器。
打个比方:
express
是 node
为
- asp.net 是.NET
- j2ee 是 java
- ...
Express 只是在 java脚本中实现的服务器端中间件框架,由服务器端的 V8 java脚本引擎执行。
express 只是一种能够避免 http 样板代码的包装器吗?
是
如果是这样,我应该在多大程度上使用 express,我应该在多大程度上使用 nodes-API?
所有请求和响应处理都应通过 Express 完成。另请参阅 Express Router 如何在您的应用程序中提供大量 URL 时简化操作
难道只是用来做路由的吗?或者还有什么?
是的,差不多就是这样。但这就是重点。做一件事,但要做好。
所以,当使用 node 构建应用程序并表达我应该如何处理数据(用户,帖子,等等,...)时?
看看Loopback
我对最终应用代码的架构有点困惑
您(像我自己一样)似乎来自 J2EE / Spring 或 Dot NET 世界,其中各种框架试图解决 2 层或 3 层架构视图-模型-dao 的完整景观。
这里的风景有点不同。这些框架的设计原则是只做一件事并且把它做好。因此,整体解决方案变得更加难以达成。
所以现在有
- 多个独立框架(节点包)可用于解决同一问题space和
- 所有这些组件必须协同工作才能实现最终的全局解决方案。
所以对于如何完成这些包的拼接没有明确的界限。它的液体。这完全取决于您的特殊问题。所以这里没有通用的解决方案,也没有明确的界限,即什么将在何处结束,什么将在何处开始。
您必须做出决定(这是一项艰巨的工作)。这个决策制定将是一个发展架构的过程,而不是在大爆炸式的努力中预先创建它。
最初days/months会遇到多次失败和挫折。
然后阅读Javascript疲劳
我只是想弄清楚我的心理模型。
但你并不孤单。 :) 我的也不直。我可以向你保证,业内没有多少人是直截了当的。
我正在尝试自学如何使用 nodejs 并用它构建一个 webApp。在我遇到的大多数示例中,expressJs 被用作 webFrameWork。我试图阅读它,但我主要是找到例子。我想了解 exactly expressJs 在使用 nodejs 时的用武之地。
我了解如何使用 'pure' node-js (http://howtonode.org/hello-node) 创建一个 helloworld-web-server。
我还看到了如何使用 expressJs 来实现: http://expressjs.com/starter/hello-world.html
express 是否只是一种能够避免 http 样板代码的包装器?如果是这样,我应该在多大程度上使用 express,我应该在多大程度上使用 nodes-API?它只是用来做路由吗?或者还有什么?
在 Express-FAQs 中,我看到它无助于处理数据库,并且没有使用 expressJs 创建模型。因此,在使用节点构建应用程序并表达我应该如何处理数据(用户、帖子等...)时?
我尝试大量阅读,但我没有一个清晰的大图抽象层在哪一点结束,下一层恰好从哪里开始.我的意思是我知道 expressJs 是一个 webFrameWork,它位于 V8 引擎上的节点网络服务器 运行 上,但是我对最终应用程序代码的架构有点困惑:我是否混合了 nodeJs 代码在单个 app.js 中使用 expressJs 代码?或者我应该有需要 express 的特定文件和另一个不需要它的数据库?
所以现在你明白我的意思了: 快递从哪里来node.js?我从 'pure' 节点没有得到它对我有什么作用,我不应该从它那里得到什么?
也许我的整个困惑来自于整个事情是 javascript 而你没有像这些明确的 'language-barriers' 这让事情变得更加明显(我正在考虑 LAMP-堆栈)。或者这正是我应该考虑 javascript 的一般方式吗?就像你实际得到的唯一东西是一个 javascript-解释器,其他一切都是我们可以包含的库,并且 expressJs 只是将 nodeJs 作为依赖项?我真的很抱歉这么模糊。我只是想弄清楚我的心智模型。
Node 本身基本上可以让您在服务器上编写 Javascript,除此之外,其他的不多。它有一些基本的 HTTP 功能,但我不想单独使用这些功能来制作 Web 应用程序。 Express 就像 Node 生态系统的 Rails 等价物(魔法更少)。它处理路由、cookie 和大多数其他与网络相关的内容。
您可能想看看 Connect, the de facto standard library for middleware. As for data modeling, most people in the Node world use mongodb with Mongoose。实际上,您最终会在有意义的地方使用 Node 内置函数,并在需要其他功能的地方插入小型库。如果您有任何其他问题,我很乐意提供帮助。
本质上,Node 只是一个 JavaScript 解释器,打包了一堆帮助程序库和一个命令行界面工具。 Node 打包了一堆实用程序库,用于执行常见的开发任务,例如与文件系统交互或发送 HTTP 请求。 Connect 是 Node 之上的抽象,提供中间件层。 Express 是 Connect 和 Node 之上的抽象,可以更轻松地构建某些类型应用程序,主要是使用 http、websockets、复杂路由、会话和 cookie 管理、身份验证等的 Web 应用程序
'same level of abstraction' 有一些竞争对手,如 Express — 其中一个比较受欢迎的是 Hapi(非常类似于express),如果你正在寻找一个基于 Node 的类似 Rails 的框架,那么看看 SailsJS、Locomotive 或 Meteor。
Express 加快了您的开发工作,并有助于更好地为您构建代码布局。 如果您是 node.js 的新手,您可以立即轻松构建一个快速服务器。它也很容易扩展。 通常人们将其他一些流行的节点模块与 express 结合使用——connect、passport、ejs、body-parser、connect-redis、mongoose 等,具体取决于您的使用场景以及与哪些集成 其他服务器。
打个比方:
express
是 node
为
- asp.net 是.NET
- j2ee 是 java
- ...
Express 只是在 java脚本中实现的服务器端中间件框架,由服务器端的 V8 java脚本引擎执行。
express 只是一种能够避免 http 样板代码的包装器吗?
是
如果是这样,我应该在多大程度上使用 express,我应该在多大程度上使用 nodes-API?
所有请求和响应处理都应通过 Express 完成。另请参阅 Express Router 如何在您的应用程序中提供大量 URL 时简化操作
难道只是用来做路由的吗?或者还有什么?
是的,差不多就是这样。但这就是重点。做一件事,但要做好。
所以,当使用 node 构建应用程序并表达我应该如何处理数据(用户,帖子,等等,...)时?
看看Loopback
我对最终应用代码的架构有点困惑
您(像我自己一样)似乎来自 J2EE / Spring 或 Dot NET 世界,其中各种框架试图解决 2 层或 3 层架构视图-模型-dao 的完整景观。
这里的风景有点不同。这些框架的设计原则是只做一件事并且把它做好。因此,整体解决方案变得更加难以达成。
所以现在有
- 多个独立框架(节点包)可用于解决同一问题space和
- 所有这些组件必须协同工作才能实现最终的全局解决方案。
所以对于如何完成这些包的拼接没有明确的界限。它的液体。这完全取决于您的特殊问题。所以这里没有通用的解决方案,也没有明确的界限,即什么将在何处结束,什么将在何处开始。
您必须做出决定(这是一项艰巨的工作)。这个决策制定将是一个发展架构的过程,而不是在大爆炸式的努力中预先创建它。
最初days/months会遇到多次失败和挫折。
然后阅读Javascript疲劳
我只是想弄清楚我的心理模型。
但你并不孤单。 :) 我的也不直。我可以向你保证,业内没有多少人是直截了当的。