一、概述
Node.js的官方开发语言是JavaScript。JavaScript是前端开发人员必备的技能,同时JavaScript也是可以直接在浏览器运行的脚本语言。
随着Chrome V8(JavaScript的渲染引擎)的出现,JavaScript终于才咸鱼翻身,不再是人们印象中那个仅能做做前端展示的小脚本了。
2009年,Ryan Dahl正式推出了基于JavaScript和Chrome V8引擎的开源Web服务器项目,取名为Node.js。在大型分布式系统中,“节点”即“node”是用于构建整个系统的独立单元,所以取名为Node.js ,期待用于构建大型应用系统。Node.js采用事件驱动和非阻塞I/O模型,使其变得轻微和高效,非常适合构建运行在分布式设备的数据密集型实用应用。另外,Node.js应用了npm包管理工具,npm可以轻松管理项目依赖,从而使得开发人员分享开源技术变得so easy。
- 重大时间节点:
- 2009年03月 Ryan Dahl正式推出Node.js
- 2010年08月 Node.js 0.2.0发布
- 2011年05月 npm1.0发布
- 2012年06月 Node.js v0.8.0稳定版发布
- 2015年10月 Node.js 5.0.0 发布
- 2015年10月 Node.js 5.0.0 发布
- 2016年04月 Node.js 6.0.0 发布
- 2016年10月 Node.js 7.0.0 发布
- 2017年05月 Node.js 8.0.0 发布
- 2017年10月 Node.js 9.0.0 发布
- 2018年04月 Node.js 10.0.0 发布
- 2018年10月 Node.js 11.0.0 发布
- 2019年04月 Node.js 12.0.0 发布
- 2019年10月 Node.js 13.0.0 发布
- 2020年04月 Node.js 14.0.0 发布
- 2020年10月 Node.js 15.0.0 发布
二、Node.js的特点
1.异步I/O
异步是指用户线程发起I/O请求后仍继续执行,当内核I/O操作完成后会通知用户线程,或者调用用户线程注册的回调函数。下图展示了异步I/O模型。
2.事件驱动
在Node.js中使用的是单线程模型,对于所有的I/O都采用异步请求方式,避免了频繁的上下文切换。Node.js在执行的过程中会维护一个事件队列,程序在执行时进入事件循环,等待下一个事件的到来,每一个异步式I/O请求完成后会被推送到事件队列,等待程序进程进行处理。Node.js进程在同一时刻只会处理一件事情,完成后立即进入事件循环检查并处理后面的工作。原理如下:
Node.js总共被分为了四层,分别是应用层、V8引擎层、Node API层和LIBUV层。这样分层的好处是CPU和内存在同一时间集中处理一件事,同时尽可能让耗时的I/O操作并行执行。
-
应用层:JavaScript交互层,常见的就是Node.js的模块,如http、fs等。
-
V8引擎层:利用V8引擎来解析JavaScript语法,进而和下层API交互。
-
Node API层:为上层模块提供系统调用,一般由C语言来实现,和操作系统进行交互。
-
LIBUV层:跨平台的底层封装,实现了事件循环、文件操作等,是Node.js实现异步的核心。
3.单线程
Node.js只用了一个主线程来接受请求,但是它接收到请求后并没有直接做处理,而是放到了时间低劣中,然后又去接受其他请求了,空间的时候,再通过事件循环来处理这些事情,从而实现了异步效果。Node.js内部是通过线程池来完成异步I/O操作,所以Node.js的单线程仅仅指JavaScript运行再单线程中,并不是Node.js平台是单线程。
4.支持微服务
微服务架构风格就像是把小的服务开发成单一应用的形式,运行在其自己的进程中,并采用轻量级的机制进行通信。
Node.js本身提供了跨平台的能力,可以运行在自己的进程中,并且易于构建Web服务,支持HTTP的通信,还支持从前端到后端再到数据库全栈开发能力。
三、Node.js下载与安装
Node.js下载地址: https://nodejs.org/.
安装步骤
step1 双击 node-v14.15.4-x64.msi,开始安装
step2 选中复选框,点击“Next”
step3 默认路径无需改动,点击“Next”
step4 点击“Next”
step5 点击“Install”进行安装
验证安装是否正确
打开cmd命令终端,运行“node -v”和“npm -v”命令,进行验证。