Node.js:初探

发表时间: 2020-07-12 14:05

什么是Node.js?

Node.js是基于Google Chrome的JavaScript引擎(V8引擎)构建的服务器端平台。Node.js由Ryan Dahl在2009年开发,其最新版本为v0.10.36。官方文档提供的Node.js定义如下-

Node.js是基于Chrome的JavaScript运行时构建的平台,可轻松构建快速且可扩展的网络应用程序。Node.js使用事件驱动的非阻塞I / O模型,使其轻巧高效,非常适合跨分布式设备运行的数据密集型实时应用程序。

Node.js是用于开发服务器端和网络应用程序的开源,跨平台运行时环境。Node.js应用程序是用JavaScript编写的,可以在OS X,Microsoft Windows和Linux的Node.js运行时中运行。

Node.js还提供了丰富的各种JavaScript模块库,这些库在很大程度上简化了使用Node.js的Web应用程序的开发。

Node.js = Runtime Environment + JavaScript Library

Node.js的功能

以下是使Node.js成为软件架构师的首选的一些重要功能。

  • 异步和事件驱动 -Node.js库的所有API都是异步的,即非阻塞。从本质上讲,这意味着基于Node.js的服务器从不等待API返回数据。服务器调用后将移至下一个API,Node.js事件的通知机制可帮助服务器从上一个API调用中获取响应。
  • 速度非常快-Node.js库基于Google Chrome的V8 JavaScript引擎构建,因此代码执行速度非常快。
  • 单线程但高度可扩展 -Node.js使用具有事件循环的单线程模型。事件机制可帮助服务器以非阻塞方式进行响应,并使服务器具有高度可伸缩性,而传统的服务器创建的线程数量有限,无法处理请求。Node.js使用单线程程序,并且与Apache HTTP Server等传统服务器相比,该程序可以为更多请求提供服务。
  • 没有缓冲 -Node.js应用程序从不缓冲任何数据。这些应用程序简单地以块的形式输出数据。
  • 许可证 -Node.js是根据MIT许可证发布的。

谁使用Node.js?

以下是github Wiki上的链接,其中包含使用Node.js的项目,应用程序和公司的详尽列表。此列表包括eBay,通用电气,GoDaddy,Microsoft,PayPal,Uber,Wikipins,Yahoo!和Yammer等。

  • 使用节点的项目,应用程序和公司

概念

下图描述了Node.js的一些重要部分,我们将在随后的章节中详细讨论。

在哪里使用Node.js?

以下是Node.js证明自己是完美的技术合作伙伴的领域。

  • I / O绑定的应用程序
  • 数据流应用
  • 数据密集型实时应用程序(DIRT)
  • 基于JSON API的应用程序
  • 单页应用

哪里不使用Node.js?

建议不要将Node.js用于CPU密集型应用程序。