我想知道你们中的一些老兵是否可以为我们这些新手提供一些指导。
使用Express编写vanilla Node有什么好处吗?更具体地说,使用Express的任何特定场景都不是一个选项?最后,对于你可以使用Express的任务,你应该在抽象层中走多远才能找出正在发生的事情?
我的意思是有很多人可以创建强大而强大的Web应用程序,他们不知道Express到底为他们做了什么。
非常感谢
答案 0 :(得分:9)
如果我是你,我会使用快递。
说实话,Express并不是一个Web框架。它非常简陋,几乎没有在Node核心上添加任何功能。
然而,据说这有一些好处:
最后 - 使用快递的最大原因是它几乎什么也没做。它与使用原始节点没有显着差异,只是它提供了一些简单的抽象,而不是低级别的东西。
因为快递非常简单,这意味着您不需要学习太多东西就可以使用它,并且可以以您想要的任何方式编写您的应用程序(它不会强制执行任何类型的模式)。
答案 1 :(得分:1)
我想在这里添加一些可能会帮助你的东西。我在软件工程中已经意识到的一件事是,从来没有一个人能够抓住所有的东西。回答了很多这类问题。由于每个应用程序都不同,因此最好先查看挑战并找出最适合工作的工具。
如果你看一下在框架上完成的一些性能测试,你会注意到vanilla节点的性能非常高。但是大多数情况下,您的应用程序不需要每秒处理8000个请求,即使这样,您也可以随时水平扩展服务器。因此,您需要通过一点点速度来获得一些好处,例如:
现在,这并不意味着每个应用程序都应该使用express。很多事情是因为它和它一样是准系统。例如,沃尔玛创建了Hapi,因为他们声称,首先使用“配置”更容易维护代码库。做法。所以也许如果你要拥有这个怪物后端和怪物团队,哈皮可能是个不错的选择。如果实时实现某些东西,您可能希望使用类似socketcluster.io的东西来帮助您扩展websockets。这就是为正确的工作选择正确的工具。
话虽这么说,使用vanilla Node构建服务器是有好处的,特别是在学习开发节点应用程序时。由于框架抽象了很多较低级别的东西,因此在这里或那里拿走了一些很酷的节点技巧。或者很多时候,如果框架不够或者npm包正在做一些奇怪的事情,那么掌握香草节点的知识就可以真正了解正在发生的事情。在使用任何框架时,具备了解Node.js如何工作的技能是非常有益的。