Node.js 并不难学,它是 运行在服务端的 JavaScript,如果你熟悉 Javascript,那么你将会很容易的学会 Node.js。
node.js 是什么?
官网的话:
- Node.js 是一个 基于 Chrome V8 引擎 的 JavaScript 运行环境。
- Node.js 使用了一个 事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
初看这段话,每一个字都认识,但是组合在一起就有点懵了,可能就是因为其中的几个关键词(基于 Chrome V8 引擎、事件驱动、非阻塞式 I/O )了,但是我们一开始学习的话是不用立刻就搞清楚这几个专业名词的意思。
Chrome 我们都很熟悉,日常开发基本都是用 Chrome 开发调试的,那么在 Node.js 里运行 JavaScript 和在 Chrome 里运行 JavaScript 有什么不同吗?
- 答案是在 Node.js 里写 JS 和在 Chrome 里写 JS,几乎没有什么不一样。
那几乎没有不一样就是还有一些不一样的,那不一样在哪里呢?
- Node.js 没有浏览器的一些 API,如
document、window等; - 加了很多属于 Node.js 自身的 API,如
process、__dirname、__filename。
而对于开发者来说,Node.js:
- 在 Chrome 里写 JavaScript 是控制浏览器。
- Node.js 可以让我们用类似的方式,控制整个计算机。
Node.js 能用来做什么?
- 可以用来做 Web 服务开发
- 通过服务端渲染(SSR)可以优化搜索引擎和首屏加载速度
- 前端端同构(前后端用同一套代码),可以大大降低开发成本和维护成本
- 构建工作流,使用 Node.js 做 JS 构建工具,是很保险的选择。
- 因为构建工具不会永远不出问题,也不会永远满足需求
- 自定义模块,可以使用 Node.js 做复杂的本地应用;而大型应用需要给使用者自定义模块的能力
- Node.js 可以利用 JS 的灵活性提供外部扩展;
- JS 庞大的开发者基数让他们的灵活性得到利用
使用 Node.js 的环境准备
简单地了解了 Node.js 是什么和能用来做什么之后,我们就开始来为开发 Node.js 做一些环境准备吧!
- Node.js 安装 首先开发 Node.js 那肯定得有 Node.js 了,而安装 Node.js 也比较简单,可以去 官网 直接下载安装稳定版本的 Node.js。
这里也推荐使用 nvm 来管理安装 Node.js 的版本,我们平时可能因为项目需要用不到这么高的版本需要切换到低版本的时候就可以用到 nvm 了。比如我使用 nvm 安装 14.17.0 版本的 Node.js 就可以通过命令行执行:nvm install 14.17.0 来安装:
通过命令行:nvm ls 可以看到当前系统安装的 Node.js 版本,像我这里就安装了四个版本,在使用的是 12.18.3 版本;
切换使用的版本也很简单,就是通过命令行:nvm use 对应版本号 即可,像想用 14.17.0 版本就是 nvm use 14.17.0。
可以使用命令行:node -v 来查看是否安装成功,同时可以查看一下当前 npm:
安装完 Node.js 之后就来安装写代码的软件了,这里推荐的是使用 Visual Studio Code 也就是 VSCode 了,安装步骤就不详细介绍了。安装成功后打开终端运行命令行试试:
Node.js 的运行方式
安装好开发环境之后就来写代码试试吧!新建一个 index.js 文件,从打印 hello world! 开始:
console.log('hello world!')
打开 VSCode 的终端,执行命令:node index.js,即可把 Node.js 运行起来:
它跟在 Chrome 的 Console 上直接打印运行是差不多的:
Node.js 的全局变量
Node 和 Chrome 的全局变量基本上是一样的,如 Date、Math、setTimeout、setInterval 等:
console.log(Date)
console.log(Math)
console.log(setTimeout)
console.log(setInterval)
当然,也是有一些变量是和 Chrome 不一样的,比如 document、window 等
有一些变量是 Node.js 里面独有的,比如 process、__dirname、__filename等:
console.log(__dirname)
console.log(__filename)
console.log(process)
__dirname是当前运行脚本所在位置__filename当前脚本目录所在位置process是进程对象,它记载了 Node.js 运行的一些信息,比如 Node 的version(版本号)、platform(操作系统)、env(环境变量)、argv(用户敲击的进程,命令行会用到)等等。
总结
- Node.js 是 运行在服务端的 JavaScript,让我们类似使用 JavaScript 控制浏览器的方式控制 整个计算机。在 Node.js 里写 JS 和在 Chrome 里写 JS,几乎没有什么不一样的。
- Node.js 可以用来 Web 服务开发;可以用来构建工作流;可以用来自定义模块扩展应用。
- 环境准备需要安装 Node.js 和 编码软件(VSCode),当然还有浏览器 Chrome;另外,推荐用 nvm 管理本地开发机器上的 node 版本。
- Node.js 可以通过命令行
node index.js把index.js文件运行起来。 - 然后学习了一些 Node.js 的全局变量,比如
process、__dirname、__filename等,更多 Node.js 的全局变量可以去 这里 学习。