目录

Node.js - 介绍

什么是Node.js?

Node.js是一个基于谷歌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成为软件架构师首选的一些重要功能。

  • Asynchronous and Event Driven - Node.js库的所有API都是异步的,即非阻塞的。 它本质上意味着基于Node.js的服务器永远不会等待API返回数据。 服务器在调用它之后移动到下一个API,并且Node.js事件的通知机制帮助服务器从先前的API调用获得响应。

  • Very Fast - 基于谷歌Chrome的V8 JavaScript引擎,Node.js库的代码执行速度非常快。

  • Single Threaded but Highly Scalable - Node.js使用带有事件循环的单线程模型。 事件机制可帮助服务器以非阻塞方式进行响应,并使服务器具有高度可伸缩性,而传统服务器则创建有限的线程来处理请求。 Node.js使用单线程程序,同一程序可以为比Apache HTTP Server等传统服务器提供更多请求的服务。

  • No Buffering - Node.js应用程序从不缓冲任何数据。 这些应用程序只是以块的形式输出数据。

  • License - Node.js在MIT许可证发布

谁使用Node.js?

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

概念 (Concepts)

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

Node.js概念

在哪里使用Node.js?

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

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

哪里不使用Node.js?

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

↑回到顶部↑
WIKI教程 @2018