Node.js
或者Node
是一个开源跨平台的运行环境,用来在浏览器外执行JavaScript
代码。咱们经常使用Node
来建立后端程序,更常说的是API
,也就是应用程序接口(Application Programming Interface
)。这些用来支撑客户端的服务,好比网络应用,它们在浏览器中运行。或者手机应用,它们在手机中运行。这些客户端简单来讲就是管理用户所见和所作。它们只是外壳,它们须要与一些在服务器或云端的服务对话,去保存数据,发送邮件,推送消息,流转工做等。前端
Node
是建立高可扩展性数据密集型和实时的后端服务,去支持客户端的很是好的工具。后端
首先Node
很容易上手,能够很好的适应原型和敏捷的开发工做,它也支持开发超速和高扩展性的服务。在不少的大公司好比PaPal、优步,沃尔玛等等都有使用。浏览器
另外Node
是由JavaScript
编写的,因此若是你是属性JavaScript
的前端开发者,那么彻底能够作到无缝切换,复用所学的JavaScript
知识。无需学习一门新语言,作到同时在先后端使用JavaScript
。使用相同的命名规范、工具编写Node
。bash
最后就是Node
拥有强大的生态和众多的开源库,这意味着你想在应用添加一些特性或者功能块。直接就可使用不少免费并开源的库,而不须要从头开始建立这些代码块,转而关注Node
的核心内容。服务器
在Node
以前,JavaScript
只能运行在浏览器里,每一个浏览器都有咱们所说的JavaScript
引擎,它讲JavaScript
代码转换为机器才懂的机器码。例如微软的Edge
浏览器使用的引擎是Chakra
,Firefox
的引擎是SpiderMonkey
,Chrome
的引擎是v8
。由于各自浏览器的引擎不一样,JavaScript
的行为可能在浏览器之间会有不一样。这也是为何咱们须要在不一样的浏览器进行测试。浏览器提供了一个JavaScript
代码的运行环境。好比在浏览器是有window
或document
对象的,这些对象容许咱们操做代码的运行环境。在此以前浏览器是运行JavaScript
的惟一途径,直到Node
的出现,实现了在浏览器外运行JavaScript
的方式。同时包含一些用来提供环境的对象,固然这些对象与在浏览器中的对象不一样。网络
在Node
里是没有document
对象,但它提供的环境对象有着其它的能力。好比能够操做文件系统,或者列出对给定端口的请求,而这些是浏览器作不到的。ide
fs.readFile();
http.createServer();
复制代码
总结起来讲,Node
是一个包含JavaScript
引擎的程序,并提供给咱们一些浏览器没有的新特性,咱们能够处理文件系统或者网络请求等。工具