Node.js

Node.js 知识量:9 - 37 - 115

1.1 Node的诞生><

Node的诞生历程- 1.1.1 -

Node的诞生历程如下:

  • 2009年2月,Ryan Dahl在博客上宣布准备基于V8创建一个轻量级的Web服务器并提供一套库。

  • 2009年5月,Ryan Dahl在GitHub上发布了最初版本的部分Node包,随后几个月里,有人开始使用Node开发应用。

  • 2009年11月和2010年4月,两届JSConf大会都安排了Node.js的讲座。

  • 2010年底,Node获得云计算服务商Joyent资助,创始人Ryan Dahl加入Joyent全职负责Node的发展。

  • 2011年7月,Node在微软的支持下发布Windows版本。

  • 2011年11月,Node超越Ruby on Rails,成为GitHub上关注度最高的项目(随后被Bootstrap项目超越,目前仍居第二)。

  • 2012年1月底,Ryan Dahl在对Node架构设计满意的情况下,将掌门人的身份转交给Isaac Z. Schlueter,自己转向一些研究项目。

Node的命名- 1.1.2 -

Node的命名来源于它的设计和目的。最初,这个项目被称为web.js,但是随着它的发展,它变成了一个更广泛的基础框架,可以为构建服务器、客户端、命令行工具等提供基础设施。每个Node进程都构成这个网络应用中的一个节点,因此得名Node。

Node给JavaScript带来的意义- 1.1.3 -

Node.js的出现给JavaScript带来了许多新的意义和可能性。以下是其中一些:

  • 运行环境拓展:长久以来,JavaScript被限制在浏览器的沙箱中运行,而Node.js使得JavaScript可以运行在服务器端,甚至构建网络应用。

  • 增强语言能力:在浏览器中,JavaScript受限于DOM操作和浏览器提供的API。在Node.js中,JavaScript有了更多的能力,比如访问本地文件、搭建WebSocket服务器端、连接数据库等。

  • 统一前后端环境:Node.js使得前后端编程环境统一,可以大大降低前后端转换所需要的上下文交换代价,从而提高了开发效率。

  • 非阻塞I/O模型:Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量且高效,非常适合在分布式设备上运行数据密集型的实时应用。

  • 简化开发过程:Node.js允许前端完全把控整个UI层,无论是浏览器的还是Server端的,从而使前端工程师能更专注于数据以何种方式呈现能带给用户更好的体验,实现用户所喜欢的各种交互。

  • 提高开发速度:由于前后端之间只需要通过数据来交互,这种模型使得两方相互独立,各自都能够快速迭代开发,只要保证数据接口不变,前后端彼此之间就不会造成任何影响。