Vanilla Node vs Express

时间:2017-01-22 03:21:42

标签: node.js express

我想知道你们中的一些老兵是否可以为我们这些新手提供一些指导。

使用Express编写vanilla Node有什么好处吗?更具体地说,使用Express的任何特定场景都不是一个选项?最后,对于你可以使用Express的任务,你应该在抽象层中走多远才能找出正在发生的事情?

我的意思是有很多人可以创建强大而强大的Web应用程序,他们不知道Express到底为他们做了什么。

非常感谢

2 个答案:

答案 0 :(得分:9)

如果我是你,我会使用快递。

说实话,Express并不是一个Web框架。它非常简陋,几乎没有在Node核心上添加任何功能。

然而,据说这有一些好处:

  • 无论好坏,express已成为Node开发人员的“事实上”默认Web框架。有很多关于它的信息。
  • Express提供了一些有用的核心内容:路由层(将函数映射到URL),可以将变量绑定到设置的“应用程序”对象等 - 以及一个简单的中间件模型,可以让您添加您的应用程序的功能很容易。
  • 因为express非常接近'准系统'节点,所以您仍然可以编写原始节点代码来使用它。它并不像其他“更大”的框架那样复杂:django,rails等。
  • 您可以使用一大堆第三方快速中间件,为您的网站添加各种功能。这样可以更轻松地构建您的网站。

最后 - 使用快递的最大原因是它几乎什么也没做。它与使用原始节点没有显着差异,只是它提供了一些简单的抽象,而不是低级别的东西。

因为快递非常简单,这意味着您不需要学习太多东西就可以使用它,并且可以以您想要的任何方式编写您的应用程序(它不会强制执行任何类型的模式)。

答案 1 :(得分:1)

我想在这里添加一些可能会帮助你的东西。我在软件工程中已经意识到的一件事是,从来没有一个人能够抓住所有的东西。回答了很多这类问题。由于每个应用程序都不同,因此最好先查看挑战并找出最适合工作的工具。

如果你看一下在框架上完成的一些性能测试,你会注意到vanilla节点的性能非常高。但是大多数情况下,您的应用程序不需要每秒处理8000个请求,即使这样,您也可以随时水平扩展服务器。因此,您需要通过一点点速度来获得一些好处,例如:

  1. 写起来容易得多。
  2. 在我看来,代码库更容易维护。
  3. 很多小问题由框架处理,所以你不必是Node.js的上帝。
  4. 中间件。
  5. 现在,这并不意味着每个应用程序都应该使用express。很多事情是因为它和它一样是准系统。例如,沃尔玛创建了Hapi,因为他们声称,首先使用“配置”更容易维护代码库。做法。所以也许如果你要拥有这个怪物后端和怪物团队,哈皮可能是个不错的选择。如果实时实现某些东西,您可能希望使用类似socketcluster.io的东西来帮助您扩展websockets。这就是为正确的工作选择正确的工具。

    话虽这么说,使用vanilla Node构建服务器是有好处的,特别是在学习开发节点应用程序时。由于框架抽象了很多较低级别的东西,因此在这里或那里拿走了一些很酷的节点技巧。或者很多时候,如果框架不够或者npm包正在做一些奇怪的事情,那么掌握香草节点的知识就可以真正了解正在发生的事情。在使用任何框架时,具备了解Node.js如何工作的技能是非常有益的。