定义:node.js不是一种独立的语言,而是一个让 JavaScript运行在服务端的开发平台,它让 JavaScript成为脚本语言世界的一等公民在服务端堪与PHP、 Python、Perl、Ruby平起平坐。node.js是一个划时代的技术,它在原有的Web前端和后台技术的基础上总结并提炼出了许多新的概念和方法,堪称是10多年来Web开发经验的集大成者。node.js可以作为服务器向用户提供服务,与PHP、 Python、 Ruby on Rails相比,它跳过了 Apache. Nginx 等 HTTP服务器,直接面向前端开发,node.js的许多设计理念与经典架构(如LAMP)有着很大的不同,可提供强大的伸缩能力,以适应2010年以后规模越来越庞大的互联网环境。
node.js最大的特点就是采用异步式I/O与事件驱动的架构设计。对于高并发的解决方案,传统的架构是多线程模型,也就是为每个业务逻辑提供一个系统线程,通过系统线程切换来弥补同步式I/O调用时的时间开销,node.js使用的是单线程模型,对于所有I/O都采用异步式的请求方式,避免了频繁的上下文切换,node.js在执行的过程中会维护一个事件队列,程序在执行时进入事件循环等待下一个事件到来,每个异步式IO请求完成后会被推送到事件队列,等待程序进程进行处理。