Node.js是一个基于Chrome JavaScript运行时创建的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js使用事件驱动,非阻塞I/O 模型而得以轻量和高效,很是适合在分布式设备上运行数据密集型的实时应用。前端
V8引擎自己使用了一些最新的编译技术。这使得用Javascript这类脚本语言编写出来的代码运行速度得到了极大提高,又节省了开发成本。对性能的苛求是Node的一个关键因素。 Javascript是一个事件驱动语言,Node利用了这个优势,编写出可扩展性高的服务器。Node采用了一个称为“事件循环(event loop)”的架构,使得编写可扩展性高的服务器变得既容易又安全。提升服务器性能的技巧有多种多样。Node选择了一种既能提升性能,又能减低开发复杂度的架构。这是一个很是重要的特性。并发编程一般很复杂且布满地雷。Node绕过了这些,但仍提供很好的性能。node
课程连接:Node.js 入门教程(文档)数据库
Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。尤为是对于熟悉onmouseover、onclick等DOM事件的用户,更有一种似曾相识的感受。
虽然让Javascript运行于服务器端不是Node的独特之处,但倒是其一强大功能。不得不认可,浏览器环境限制了咱们选择编程语言的自由。任何服务器与日益复杂的浏览器客户端应用程序间共享代码的愿望只能经过Javascript来实现。虽然还存在其余一些支持Javascript在服务器端 运行的平台,但由于上述特性,Node发展迅猛,成为事实上的平台。
在Node启动的很短期内,社区就已经贡献了大量的扩展库(模块)。其中不少是链接数据库或是其余软件的驱动,但还有不少是凭他们的实力制做出来的很是有用的软件。编程
最后,不得不提到的是Node社区。虽然Node项目还很是年轻,但不多看到对一个项目如此狂热的社区。无论是新手,仍是专家,你们都围绕着项目,使用并贡献本身的能力,致力于打造一个探索、支持、分享、听取建议的乐土。浏览器
Node.js的优势安全
nodejs做为一个新兴的前端框架,后台语言,有不少吸引人的地方:前端框架
RESTful API服务器
单线程网络
Node.js能够在不新增额外线程的状况下,依然能够对任务进行并发处理 —— Node.js是单线程的。它经过事件轮询(event loop)来实现并发操做,对此,咱们应该要充分利用这一点 —— 尽量的避免阻塞操做,取而代之,多使用非阻塞操做。架构
非阻塞IO
V8虚拟机
事件驱动
更多精品课程:
阿里云大学官网(阿里云大学 - 官方网站,云生态下的创新人才工场)