简介
▶ Node.js是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境。
▶ Node采用Google开发的V8引擎运行js代码,使用事件驱动、非阻塞和异步I/O模型等技术来提高性能,可优化应用程序的传输量和规模。
▶ Node大部分基本模块都用JavaScript编写。在Node出现之前,JS通常作为客户端程序设计语言使用,以JS写出的程序常在用户的浏览器上运行。
▶ 目前,Node已被IBM、 Microsoft、 Yahoo!、 Walmart、Groupon、 SAP、 LinkedIn、 Rakuten、PayPal、 Voxer和GoDaddy等企业采用。
▶ Node主要用于编写像Web服务器一样的网络应用,这和PHP和Python是类似的。
▶ 但是Node与其他语言最大的不同之处在于,PHP等语言是阻塞的而Node是非阻塞的。
▶ Node是事件驱动的。开发者可以在不使用线程的情况下开发出一个能够承载高并发的服务器。其他服务器端语言难以开发高并发应用,而且即使开发出来,性能也不尽人意。
▶ Node正是在这个前提下被创造出来。
▶ Node把JS的易学易用和Unix网络编程的强大结合到了一起。
▶ Node.js允许通过JS和一系列模块来编写服务器端应用和网络相关的应用。
▶ 核心模块包括文件系统I/O、网络(HTTP、 TCP、 UDP、 DNS、TLS/SSL等)、二进制数据流、加密算法、数据流等等。 Node模块的API形式简单,降低了编程的复杂度。
▶ 使用框架可以加速开发。常用的框架有Express.js、 Socket.IO和Connect等。 Node.js的程序可以在Microsoft Windows、Linux、 Unix、 Mac OS X等服务器上运行。
▶ Node.js也可以使用CoffeeScript、 TypeScript、 Dart语言,以及其他能够编译成JavaScript的语言编程。
发明者
瑞安·达尔(Ryan Dahl)
▶ Ryan Dahl并非科班出身的开发者,在2004年的时候他还在纽约的罗彻斯特大学数学系读博士。
▶ 2006年,也许是厌倦了读博的无聊,他产生了『世界那么大,我想去看看』 的念头,做出了退学的决定,然后一个人来到智利的Valparaiso小镇。
▶ 从那起,Ryan Dahl不知道是否因为生活的关系,他开始学习网站开发了,走上了码农的道路。
▶ 那时候Ruby on Rails很火,他也不例外的学习了它。
▶ 从那时候开始,Ryan Dahl的生活方式就是接项目,然后去客户的地方工作,在他眼中,拿工资和上班其实就是去那里旅行。
▶ Ryan Dahl经过两年的工作后,成为了高性能Web服务器的专家,从接开发应用到变成专门帮客户解决性能问题的专家。
▶ 期间他开始写一些开源项目帮助客户解决Web服务器的高并发性能问题,他尝试了很多种语言,但是最终都失败了。
▶ 在他快绝望的时候,V8引擎来了。 V8满足他关于高性能Web服务器的想象。于是在2009年2月它开始着手编写Node.js
Node的历史
Node的用途
▶ Web服务API,比如REST
▶ 实时多人游戏
▶ 后端的Web服务,例如跨域、服务器端的请求
▶ 基于Web的应用
▶ 多客户端的通信,如即时通信