我试图自学如何使用nodejs并使用它构建webApp。在大多数示例中,我expressJs被用作webFrameWork。我试着阅读它,但我主要找到例子。我想了解使用nodejs时完全 expressJs的位置。
我看到如何用纯粹的'创建一个helloworld-web-server。 node-js(http://howtonode.org/hello-node)。
我也看到了如何使用expressJs: http://expressjs.com/starter/hello-world.html
表达只是一种能够避免http-boilerplate代码的包装器吗?如果是这样,我应该在多大程度上使用express,我应该使用nodes-API?它只是用来做路由吗?还有什么呢?
在Express-FAQs我看到它没有帮助照顾数据库,并且没有使用expressJs创建模型。因此,在构建带节点的应用程序时,我应该如何处理数据(用户,帖子,等等......)?
我试着做了很多阅读,但是我没有一个清晰的大画面,此时一层抽象结束,下一层完全开始。我的意思是我理解expressJs是一个webFrameWork,它位于运行在V8引擎上的节点web服务器上,但是我对最终应用程序代码应该构建的内容感到有点困惑:我是否将nodeJs代码与expressJs代码混合在一起一个app.js?或者我应该具有哪些需要快速的特定文件和另一个不需要它的数据库?
所以现在你理解我的意思了: 表达式如何进入node.js?它对我来说是什么,我不能从纯粹的'节点以及我应该从中得到什么呢?
也许我的整个混乱都来自因为整个事情都是javascript而你并不喜欢这些明确的语言障碍'这让事情变得更加明显(例如,我正在思考LAMP-stack)。或者这正是我一般应该考虑javascript的方式?就像你实际得到的唯一的东西是javascript-interpreter,其他一切都是我们可以包含的lib,而expressJs只是将nodeJs作为依赖项?我真的很抱歉这么模糊。我只想让自己的心理模型变得直接。
答案 0 :(得分:3)
表达只是一种能够避免使用http-样板代码的包装器吗?
是
如果是这样,我应该在多大程度上使用express,我应该使用nodes-API?
所有请求和响应处理都应通过Express完成。另请参阅Express Router如何在您的应用中提供大量网址时简化操作
它只是用来做路由吗?或者还有什么?
是的,几乎就是这样。但这就是重点。做一件事但做得好。
因此,在使用节点构建应用程序并表达我应该如何处理数据(用户,帖子,等等......)?
查看Loopback
我对应该构建的最终应用代码感到有点困惑
你(像我一样)似乎来自J2EE / Spring或Dot .NET世界,其中各种框架试图解决2层或3层架构视图的完整环境 - 模型 - dao。
在这里,景观略有不同。框架的设计原则只做一件事,做得好。因此整体解决方案变得更加困难。
所以现在有
因此,如何完成这些包装的缝合没有明确的界限。它的流体。它完全依赖于你的特殊问题。因此,这里没有通用的解决方案,也没有明确的界限,它们将在何处以及将从何处开始。
你必须决定(那是艰苦的工作)。这个决策过程将是一个过程,在这个过程中,您可以发展您的体系结构,而不是在一个巨大的努力中提前创建它。
在最初的几天/几个月内会遇到多次失败和挫折。
然后阅读 Javascript Fatigue
我只是想让自己的心理模型变得直接。
但你并不孤单。 :)我也不直。我可以向你保证,业内人士并不多。
答案 1 :(得分:1)
Node本身基本上允许你在服务器上编写Javascript,而不是其他。它有一些基本的HTTP功能,但我不想单独使用这些功能来制作一个Web应用程序。 Express类似于Node生态系统的Rails(具有较少的魔力)。它处理路由,cookie和大多数与Web相关的其他内容。
您可能想要查看Connect,这是事实上的中间件标准库。至于数据建模,Node世界中的大多数人都使用具有Mongoose的mongodb。在实践中,您最终将使用Node内置函数,并将其插入需要其他功能的小型库中。如果您有任何其他问题,我很乐意提供帮助。
答案 2 :(得分:0)
从本质上讲,Node只是一个JavaScript解释器,包含一堆辅助库和一个命令行界面工具。 Node与一堆实用程序库打包在一起,用于执行常见的开发任务,例如与文件系统交互或发送HTTP请求。 连接是Node的顶层抽象,提供中间件层。 Express 是 Connect & amp; 节点,可以更轻松地构建某些类型的应用程序,主要是使用http,websockets,复杂路由,会话和cookie管理,身份验证等的Web应用程序。
有一些竞争者处于相同的抽象层次'作为 Express - 其中一个比较流行的是 Hapi (非常类似于express),如果你在Node上寻找类似Rails的框架,那么看看在SailsJS,机车或流星。
答案 3 :(得分:0)
Express可加快您的开发工作,并有助于更好地为您构建代码布局。 如果您是node.js的新手,您可以轻松地构建快速服务器。它也很容易扩展。 通常人们会使用其他一些流行的节点模块与express-- connect,passport,ejs,body-parser,connect-redis,mongoose等一起使用,具体取决于您的使用场景以及与之相关的集成。 其他服务器。
答案 4 :(得分:0)
作为类比:
express
以node
为
Express就是在服务器端由V8 javascript引擎执行的javascript中实现的服务器端中间件框架。