Javascript 为什么使用Node JS创建REST API和MVC Web应用程序
我正在学习NodeJS,并尝试用它创建一些示例。为此,我学习了一些教程、博客或视频,最终用Express和Mongo db创建了一个web应用程序,因此我也被引导到了这个方向 在这段时间里,我读到的最反复的一句话是Node在处理事件和异步编程方面要好得多,因此基于事件的应用程序肯定可以像聊天服务器一样利用Node的功能(因为可能没有足够的处理)。但这些应用很少 现在,我不太想了解创建web应用程序(或RESTAPI)如何利用事件的优点。在理解Node时,我是否遗漏了一些东西?除了聊天服务器,Node是否还有其他应用程序? 它有一些Node.js应该在哪里使用的示例,比如 聊天 原料药 排队输入 数据流 代理Javascript 为什么使用Node JS创建REST API和MVC Web应用程序,javascript,node.js,events,web-applications,Javascript,Node.js,Events,Web Applications,我正在学习NodeJS,并尝试用它创建一些示例。为此,我学习了一些教程、博客或视频,最终用Express和Mongo db创建了一个web应用程序,因此我也被引导到了这个方向 在这段时间里,我读到的最反复的一句话是Node在处理事件和异步编程方面要好得多,因此基于事件的应用程序肯定可以像聊天服务器一样利用Node的功能(因为可能没有足够的处理)。但这些应用很少 现在,我不太想了解创建web应用程序(或RESTAPI)如何利用事件的优点。在理解Node时,我是否遗漏了一些东西?除了聊天服务器,No
可以使用异步特性的地方还有很多。让我继续讨论您提出的API/WebServer示例 由于Node.js基本上运行JavaScript代码,显然它本质上是异步的。因此,这基本上意味着它试图将任何昂贵或长时间运行的任务(如磁盘I/O或数据库请求)卸载给“其他人”(例如内核、本机db libs)。一旦完成,它就可以继续处理其他任务。因此它是非阻塞的 现在想想为静态html、js,。。。文件并提供API。基本上,您的服务器将要做的大量工作是“为我提供那个文件”(=磁盘I/O)或(在API的情况下)从数据库中获取一些数据。由于这些任务没有在节点环境中执行,因此节点应用程序本身(假设没有其他瓶颈)能够处理大量请求
此外,该节点是单线程的。对于标准用例,它不需要多个线程,因为与其他语言一样,您不存在线程将阻塞更长时间的问题。在我看来,这使它更容易使用,因为您不必处理并行编程带来的所有问题。然而,当涉及到CPU密集型任务时,这在web服务器和API领域相对少见,这可能是一个问题(这是可以解决的)。为什么不呢?它们也是许多人对用其他大多数语言写作感兴趣的东西!