📜  Node.js-简介

📅  最后修改于: 2020-11-03 10:02:32             🧑  作者: Mango


什么是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?

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

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

哪里不使用Node.js?

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