NodeJS 是什么
NodeJS 是 JavaScript 运行环境 而非一门语言, NodeJS 运行时环境是在 Chrome V8 JavaScript 引擎的基础上进行改造的 允许 JS 在服务端运行, 采用异步非阻塞I/O(文件读写,网络请求… 等 无需等待操作完成 即可执行下面的代码) 是 NodeJS 的特点 由此可得知 Node 适用于 密集型I/O任务, 但并不适合 CPU密集型(计算密集 如复杂数学运算)
NodeJS 是单线程的但是 NodeJS 可以通过 模块来创建多线程
NodeJS 可以用于做什么呢
在前端开发日常离不开 NodeJS, 可见 NodeJS 在前端扮演如何重要的角色, 可能你还不知道你在前端中你用到什么是使用 NodeJS 的工具吧! 在这里我们就来看看
- 前端工具链: Webpack, Vite, Rollup
- 编译器: Babel
- CLI: VueCLI, Create React
- 中间层/代理者: 通过请求/发送请求 让中间层去处理数据, 在让中间层去发送请求给后端
- 后端框架: Express, Koa, NestJS
- 代码检查: ESLint, Prettier
由此可见 NodeJS 更多的用于 制作 工具, 但并不是不可以使用 NodeJS 来开发后端, 在 NPM 仓库中有着非常多开发中的包供你选择 你可以选择 Mysql/Mongoose/Redis, 其中 Express/Koa 蕴含了非常优秀的设计思想这是非常值得我们学习借鉴的
安装 NodeJS
安装 Node 我们有两种方式: 安装单独版本 Node, 安装 Node 版本管理工具, 我在这里推荐使用 方式2 因为在开发中避免不了都只使用一个 Node 版本这样太过于死板, 我在这里推荐几个包管理工具 nvm, Volta, Volta 有一个优点就是我们在项目中进行切换可以在 package.json
自动添加 Node 版本的字段, 当然现在 Node 新版本的官网也支持多种安装方式: Node Download
{
...
"node": "v20.1.0"
}
- Window 安装 NVM:
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
- Mac 安装
brew update
brew install nvm
# window 安装
winget install Volta.Volta
# mac 安装
curl https://get.volta.sh | bash
我们打开 Terminal 进入 [[REPL]] 环境
- REPL(Read-Eval-Print Loop) 时 NodeJS 提供的一个交互式环境, 可以运行 JS 代码 进行运行
node # 进入 REPL 环境
console.log(1); // 1
总结
- NodeJS 是什么: NodeJS 是基于 ChromeV8 进行修改的, NodeJS 底层是 异步非阻塞I/O 特点即可得知它非常适合 I/O 密集型(大量网络请求与I/O读写),但并不擅长 CPU密集(复杂数学运算)
- NodeJS 有什么用: 前端 工具链, CLI, 中间层, 后端框架, 代码检查
- 安装 NodeJS: 推荐 Nvm Volta 对 NodeJS 进行版本管理