Node.js是一个基于Chrome JavaScript运行时创建的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,很是适合在分布式设备上运行数据密集型的实时应用。前端
因为JavaScript的缘故,人们经常对Node.js产生很多的误解,如:node
确定是前端搞出来的东西 又是一门新的语言? 是否是JavaScript框架? 会不会效率很慢?
固然,这些问题的答案都是否。既然它如此的强大,那么接下来就让咱们一块儿来了解了解Node.js吧!web
是Javascript的运行环境,不是一门新的语言,也不是JavaScript的框架,采用Google的V8引擎。能够简单的理解为服务器看不见的浏览器,提供特殊的API能够读取请求、操做数据库等,已经脱离来前端体系,是后端体系的内容。数据库
Node.js平台是用C/C++实现,运行的是JAVASCRIPT的脚本。它和JavaScript的关系就相似于JAVA和JAVA虚拟机。编程
既然Node.js并不是由JavaScript语言写出,为何就必定要使用JavaScript不可呢?后端
这里面就涉及到一个历史的小故事——Node.js,原名Web.js。其设计做者非纯粹意义上专业领域出生的码农,而是一位数学家,他但愿能经过实现事件驱动和异步IO来设计一个高性能的WEB服务器,在比较了众多语言以后,选择了JavaScript。浏览器
那么JavaScript又是凭借什么功能打动了这位大牛呢?缓存
函数式编程。 异步编程。在前端编程中,异步编程是习觉得常的事情。 没有历史包袱。如:Lua的同步库已经广泛被用户熟悉,改变用户习惯难度系数偏高。 V8引擎。在运行JavaScript以前,相比其它的JavaScript的引擎转换成字节码或解释执行,V8将其编译成原生机器码,而且使用了如内联缓存等方法来提升性能。也所以,JavaScript程序在V8引擎下的运行速度媲美二进制程序。
Node.js既是WEB服务器,又是高性能、可扩展的网络应用框架,仍是单线程、事件驱动简化网络编程的。
目的:成为一个快速构建、可伸缩的网络应用平台。服务器
(1)无需再花费力气学一门新语言
(2)其余语言能作的JS也能作,甚至更好网络
动态网页 Ajax cgi Web Socket。主要解决长连接问题。
基于Electron,node-webkit
Atom VSCode
网络爬虫 本地开发构建工具,如GRUNT等
APP后台服务 海量数据上报服务
2012年,接入Node.js。其团队目前已独立开发了服务器端等WEB标准组建TSW。现在,除部分古老的功能外,其他基本已转入由Node.js实现。既然如此强大,那么咱们就来看看TSW的应用成果吧。
进程管理 监控体系——日志系统、自动告警、恶意请求拦截等 问题定位——测试环境、用户染色、定向抓包等 研发效率——先后端分离、代码同构、页面直出等 支持多种框架——Express、Koa、自研框架等