简介
Node.js是一个应用程序框架,有时也被称为运行环境(runtime),通过它,应用程序可使用JavaScript编程语言来构建。 Node.js以其速度而闻名,因为它是非阻塞的。非阻塞意味着一个请求不会等待另一个请求结束(也就是异步的)。异步这一特性使Node.js成为当前吞吐量最大的框架,而Java应用服务器通常阻塞每个绑定到线程的请求,只要没有更多线程可用,服务器会停止接收请求。
在本文中,我们将发现Node.js的一些方面。我们将通过讨论一些话题,比如:Node.js的开发实践,Node.js如何实现并发以及主要设计模式。
为什么是 Node.js?
Node.js可说是任何中小型项目的完美选择。如果你用了TypeScript而不是简单的JavaScript,那么你更将打开一个全新的世界,拥有无限的可能。这是因为TypeScript是“可缩放的JavaScript”,而Javascript开始并不是专门用于后端开发的语言,甚至到目前为止,它仍不太适合后端开发。
JavaScript不能成为合适的后端开发语言的主要原因之一是缺少类型检查。它在高度模块化的架构中会变得异常复杂。
模块化是 Node.js 中构建系统的主要方法,而且 Node.js 本身也是模块化的。因此,对于构建其上的应用程序来说,自然适合遵循类似的路径。另一方面,Typescript是“JavaScript的超集”,当涉及到在服务器端使用Node.js时,添加了大量的“语法糖”。语法糖的一个例子是变量类型检查,而JavaScript缺乏这一特性。
Node.js 如何实现并发
Node.js通过依赖一个被称为事件循环的运行时结构来实现其“并发性”。
事件循环是每个Node.js应用程序的核心,因为Node.js通过它可以实现其高输入和输出(IO)。它的工作方式是高度依赖于异步编程概念来使应用程序无阻塞。即,请求/语句2不等待请求1完成,并且请求/语句3不等待请求/语句2完成,然后才能继续。这同样适用于需要由运行时执行的每个其他任务。
Node.js 设计模式
所有Node.js应用程序都是基于“观察者”(observer)设计模式设计的。因此,对于Node.js开发人员来说,了解这个设计模式是如何工作是非常重要的,特别是如果来自不同的环境将这种模式抽象出来的情况。
当然,你也不用担心这个模式的难度,在Node.js 中有几种编程方式供选择。Node.js 7.6 基于新的JavaScript规范(ES6)已经实现 ,这个技术被称为异步等待。开发者必须确保至少使用Node.js 7.6 及更高版本。
就像其它技术一样,Node.js也有其优点和缺点。
Node.js主要优点是Node.js在吞吐量方面速度非常快。缺点是在构建大型企业级应用时,如果你用的JavaScript而不是用的 TypeScript,在可维护性方面会变得异常复杂。
因此,TypeScript 才是实现企业级应用的标准。
作者:Georges Sofo
编译:21CTO社区
来源:https://dzone.com/articles/an- … odejs
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/257149.html