简介
简介
简介
简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js是一个能够在服务器端运行JavaScript的开放源代码、是一个跨平台JavaScript运行环境。
Node.js 是一个事件驱动 I/O 服务端 JavaScript 环境,基于 Google 的 V8 引擎,V8 引擎执行 Javascript 的速度非常快,性能非常好。
node.js就是使用javascript编写,并且运行在服务器。
也就是说node.js实现了使用js来开发后端。
node.js把js的战场从浏览器转移到服务器,可以进行更多的操作。
用户请求和响应的过程:

官网
官网:https://nodejs.org/en/
中文官网:http://nodejs.cn/download/

产生原因
Node.js的产生原因要追溯到服务器的阻塞问题:
传统服务器每次产生一个请求,就对应着一个线程。
那么就有一个问题:请求的速度由用户决定,响应的速度也可以通过提升带宽等方法比较容易的提升速度。但是I/O的输入输出速度是比较难提升的。而每一个请求就会产生一个线程,数据请求又比较慢就会出现有很多线程再缓存中等待,就会造成大量的内存浪费。所以使用Node.js编写的服务器采用单线程模式,即不管产生多少请求就只有一个线程,这样就可以节省空间,大大降低了成本。
我们常说JS是单线程的,这也与它运行在nodejs上的有关。
nodejs特点
Node采用Google开发的V8引擎运行js代码,使用事件驱动、非阻塞和异步模型等技术来提高性能,可优化应用程序的传输量和规模。
Nodejs是基于V8引擎,V8是Google发布的开源JavaScript引擎,本身就是用于Chrome浏览器的js解释部分,但是Ryan Dahl鬼才般地,把这个V8搬到了服务器上,用于做服务器的软件。
Node大部分基本模块都用JavaScript编写。在Node出现之前,JS通常作为客户端程序设计语言使用,以JS写出的程序常在用户的浏览器上运行。
Node.js的单线程是Node.js的一个最大的优点,但是同时也是它的缺点。
因为毕竟是单线程,如果请求太多会处理不过来的,所以我们一般情况下采用分布式的方法来弥补这个缺点。分布式是指采取多个服务器,node.js对服务器的要求不高,所以不必担心价格问题。
nodejs的用途
nodejs编写的就是服务器,所以服务器有的作用它都有,如:
Web服务API,比如REST
实时多人游戏
后端的Web服务,例如跨域、服务器端的请求
基于Web的应用
多客户端的通信,如即时通信
作为底层开发工具:node.js => webpack=> vue,recat脚手架开发方式
几个相关概念
nvm
node.js 版本管理工具;不同项目可能需要不同版本的 node;可以使用 nvm 来管理 node.js 版本
npm
node.js 包管理工具;用来管理 node.js 中的第三方插件;新版本的 node 在安装的时候,会自动安装对应版本的 npm
nrm
npm 源的管理工具,可以用来方便的切换 npm 源
cnpm
使用的是淘宝的源。用法跟 npm 完全一致。cnpm 经常会有问题,所以在很多地方不推荐使用
yarn
经过重新设计的崭新的 npm 客户端;运行速度显著提升,整个安装时间比 npm 少。一般推荐使用 yarn 代替 npm
npx
一个 npm 包执行器。我们可以使用 npx 来执行各种命令。
