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库的所有API都是异步的,即非阻塞的.它实质上意味着基于Node.js的服务器永远不会等待API返回数据.服务器在调用它之后移动到下一个API,并且Node.js事件的通知机制帮助服务器从先前的API调用中获得响应.
非常快 : 基于Google Chrome的V8 JavaScript引擎构建,Node.js库的代码执行速度非常快.
单线程但高度可扩展 : 去; Node.js使用带有事件循环的单线程模型.事件机制有助于服务器以非阻塞方式响应,并使服务器具有高度可伸缩性,而传统服务器则创建有限的线程来处理请求. Node.js使用单线程程序,同一程序可以为比Apache HTTP Server等传统服务器提供更多请求的服务.
没有缓冲 : Node.js应用程序从不缓冲任何数据.这些应用程序只是以块的形式输出数据.
许可证 : Node.js在 MIT许可下发布.
以下是github wiki上的链接,其中包含正在使用的项目,应用程序和公司的详尽列表Node.js的这个列表包括eBay,通用电气,GoDaddy,微软,PayPal,Uber,Wikipins,Yahoo!和Yammer等等.
使用节点项目,应用程序和公司
下图描绘了Node.js的一些重要部分我们将在后续章节中详细讨论.
以下是Node.js证明自己是完美技术合作伙伴的领域.
I/O绑定应用程序
数据流应用程序
数据密集型实时应用程序(DIRT)
基于JSON API的应用程序
单页应用程序
不建议将Node.js用于CPU密集型应用程序.