在闲暇时,我自学了一下node.js,如今我把我的体会说一下:Node.js ,或者 Node ,是一个可让 JavaScript 运行在服务器端的平台。它可让
JavaScript 脱离浏览器的束缚运行在通常的服务器环境下,就像运行 Python、Perl、PHP、Ruby
程序同样。你能够用 Node.js 轻松地进行服务器端应用开发,Python、Perl、PHP、Ruby 能
作的事情 Node.js 几乎都能作,并且能够作得更好。
Node.js 是一个为实时Web (Real-time Web )应用开发而诞生的平台,它从诞生之初就充分
考虑了在实时响应、超大规模数据要求下架构的可扩展性。这使得它摒弃了传统平台依靠多线
程来实现高并发的设计思路,而采用了单线程、异步式I/O、事件驱动式的程序设计模型。这些
特性不只带来了巨大的性能提高,还减小了多线程程序设计的复杂性,进而提升了开发效率。
Node.js 最初是由 Ryan Dahl 发起的开源项目,后来被 Joyent 公司注意到。Joyent 公司将
Ryan Dahl 招入旗下,所以如今的 Node.js 由 Joyent 公司管理并维护。尽管它诞生的时间(2009
年)还不长,但它的周围已经造成了一个庞大的生态系统。Node.js 有着强大而灵活的 包管
理器 (node package manager ,npm ),目前已经有上万个第三方模块,其中有网站开发框架,
有 MySQL、PostgreSQL、MongoDB 数据库接口,有模板语言解析、CSS 生成工具、邮件、
加密、图形、调试支持,甚至还有图形用户界面和操做系统 API工具。由 VMware 公司创建
的云计算平台 Cloud Foundry 率先支持了 Node.js。2011年6月,微软宣布与 Joyent 公司合做,
将 Node.js 移植到 Windows ,同时 Windows Azure 云计算平台也支持 Node.js。Node.js 目前
还处在迅速发展阶段,相信在不久的将来它必定会成为流行的Web应用开发平台。node
Node.js 不是一种独立的语言,与 PHP、Python、Perl、Ruby 的“既是语言也是平台”
不一样。Node.js 也不是一个 JavaScript 框架,不一样于 CakePHP、Django、Rails。Node.js 更不
是浏览器端的库,不能与 jQuery、ExtJS 相提并论。Node.js 是一个让 JavaScript 运行在服务
端的开发平台,它让 JavaScript 成为脚本语言世界的一等公民,在服务端堪与 PHP、Python、
Perl、Ruby 分庭抗礼。 文档对象模型(DOM )和浏览器对象模型(BOM )组成的,而 Mozilla 则指出 JavaScript 由 1
Core JavaScript 和 Client JavaScript 组成。之因此会有这种分歧,是由于 JavaScript 和浏览器
之间复杂的历史渊源,以及其命途多舛的发展历程所共同形成的,咱们会在后面详述。咱们
能够认为,Node.js 中所谓的 JavaScript 只是 Core JavaScript ,或者说是 ECMAScript 的一个
实现,不包含 DOM、BOM 或者 Client JavaScript。这是由于 Node.js 不运行在浏览器中,所 2
以不须要使用浏览器中的许多特性。
Node.js 是一个让 JavaScript 运行在浏览器以外的平台。它实现了诸如文件系统、模块、
包、操做系统 API、网络通讯等 Core JavaScript 没有或者不完善的功能。历史上将 JavaScript
3
移植到浏览器外的计划不止一个,但Node.js 是最出色的一个。随着 Node.js 的成功,各类浏
览器外的 JavaScript 实现逐步兴起,所以产生了 CommonJS 规范。CommonJS 试图拟定一套
完整的 JavaScript 规范,以弥补普通应用程序所需的 API ,譬如文件系统访问、命令行、模
块管理、函数库集成等功能。CommonJS 制定者但愿众多服务端 JavaScript 实现遵循 4
CommonJS 规范,以便相互兼容和代码复用。Node.js 的部份实现遵循了CommonJS规范,但
因为二者还都处于诞生之初的快速变化期,也会有不一致的地方。
Node.js 的 JavaScript 引擎是 V8 ,来自 Google Chrome 项目。V8 号称是目前世界上最快
的 JavaScript 引擎,经历了数次引擎革命,它的 JIT (Just-in-time Compilation ,即时编译) 5
执行速度已经快到了接近本地代码的执行速度。Node.js 不运行在浏览器中,因此也就不存
在 JavaScript 的浏览器兼容性问题,你能够放心地使用 JavaScript 语言的全部特性。Node.js 能为网络而生。Node.js 数据库
能作的远不止开发一个网 站那么简单,使用 Node.js ,你能够轻松地开发: 具备复杂逻辑的网站; 基于社交网络的大规模 npm
Web 应用; Web Socket 服务器; TCP/UDP 套接字应用程序。这就是个人;初识谢谢。浏览器