Node.js (它不是库,也不是框架)
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。
Node的优点
- RESTful API
- 单线程
Node可以在不新增额外线程的情况下,依然可以对任务进行并发处理 —— Node.js是单线程的。它通过事件循环(event loop)来实现并发操作,对此,我们应该要充分利用这一点 —— 尽可能的避免阻塞操作,取而代之,多使用非阻塞操作。
- 非阻塞IO(异步)
Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问。
- V8虚拟机
- 事件驱动
- 没有BOM和DOM
- 在node执行环境中,为JS提供一些服务器级别的操作API
例如文件读写,网络服务,网络通信
- 轻量高效
- npm是世界上最大的生态系统包
Node.js 环境概述
浏览器环境 VS node环境
由于api不同,它们能够实现的功能不同:
- 浏览器api:提供有限的功能,主要用于操作浏览器窗口(BOM)和页面中的元素(DOM)
- node api:提供非常完整的功能,包括但不仅限于:文件处理、进程控制、网络通信
从使用场景看:
- 浏览器中的JS:提高用户体验
- node中的js(nodejs):提供web服务
它们的关系:
它们的共同点:都能执行ES标准的语言
Node.js 可以做什么
- Web服务器后台
- 命令行工具
Node.js 的安装
下载地址:https://nodejs.org/zh-cn/
安装好后,在终端中查看node版本
node -v
安装node
时,会自动安装npm
,可在终端中查看npm
版本
npm -v