Node.js概述与nvm控制Node.js版本

54 阅读3分钟

一、Node.js 概述

┌─────────────────────────────────────────────────────────────┐
│                      Node.js 架构                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│    ┌─────────────────────────────────────────────────┐      │
│    │              JavaScript 应用代码                 │      │
│    └─────────────────────────────────────────────────┘      │
│                          ▼                                  │
│    ┌─────────────────────────────────────────────────┐      │
│    │              Node.js API 层                      │     │
│    │   (fs, http, path, crypto, stream, etc.)        │      │
│    └─────────────────────────────────────────────────┘      │
│                          ▼                                  │
│    ┌──────────────────┬──────────────────────────────┐      │
│    │   V8 引擎        │        libuv                 │      │
│    │ (Chrome 同款)    │   (跨平台异步 I/O 库)         │      │
│    │  执行 JS 代码    │   事件循环 + 线程池           │       │
│    └──────────────────┴──────────────────────────────┘      │
│                          ▼                                  │
│    ┌─────────────────────────────────────────────────┐      │
│    │              操作系统 (Linux/macOS/Windows)      │      │
│    └─────────────────────────────────────────────────┘      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

整体架构层次

JavaScript 应用层

开发者编写的业务逻辑代码

使用 Node.js 提供的 API 进行开发

Node.js API 层

提供核心模块如 fs、http、path、crypto、stream 等

作为 JavaScript 代码与底层系统之间的桥梁

底层引擎层

V8 引擎:负责 JavaScript 代码的解析和执行

libuv:提供跨平台的异步 I/O 操作和事件循环机制

操作系统层

支持多种操作系统平台(Linux/macOS/Windows)

核心组件功能

V8 引擎

来自 Chrome 浏览器的 JavaScript 执行引擎

将 JavaScript 代码编译为机器码执行

提供高效的内存管理和垃圾回收机制

libuv 库

实现事件循环(Event Loop)机制

管理线程池处理异步操作

提供跨平台的系统调用封装

这种架构使得 Node.js 能够高效处理大量并发连接,特别适合 I/O 密集型应用。

总结:简单说就是让 JavaScript 变得更强大,能做的事情更多了。

废话不多说直接开始安装node 不过安装node之前首先需要安装nvm

为什么要安装 nvm

主要用途:

Node.js 版本管理:可以在同一台机器上安装和切换多个 Node.js 版本

开发环境隔离:不同项目可以使用不同的 Node.js 版本,避免版本冲突

windows安装nvm

下载nvm-setup.exe安装包,安装前卸载以前安装过的node环境,以免相互影响(没有安装的可以直接跳过)。 选择第一个同意安装协议

nvm安装包

选择安装目录,建议安装在D盘根目录,D:\nvm请勿安装在带中文目录,中文目录可能造成一些不必要的问题。

nvm安装包

选择安装nodejs的目录,建议放在nvm下的nodejs, D:\nvm\nodejsD,以后通过vnm安装的nodejs版本都会下载安装到这里统一管理。

nvm安装包

这是邮件订阅通知,可全部取消。

nvm安装包

安装完成打开powershell

nvm安装包

输入nvm -v查看是否有版本号输出,如果有版本号显示说明安装成功并已加入到 windows系统环境变量,可以cmd命令调用。

image.png

如出现:ERROR open \settings.txt: The system cannot find the file specifiedE 的错误,通常是因为 nvm 的配置文件 settings.txt 丢失或路径配置错误。 image.png

如果丢失则手动创建一个 settings.txt或者卸载nvm重新安装nvm

settings.txt内容:

root: D:\KFAndQD\nvm
arch: 64
proxy: none
originalpath: 
originalversion: 
node_mirror: 
npm_mirror: 

由于npm 官方仓库位于海外,国内访问速度较慢所有需要设置国内镜像加速

方式一:修改settings.txt

淘宝镜像:

node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/

清华大学镜像:

node_mirror: https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/
npm_mirror: https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/npm/

方法二:命令设置 按win+r键输入cmd在命令行输入

nvm node_mirror https://npmmirror.com/mirrors/node/
nvm npm_mirror https://npmmirror.com/mirrors/npm/
或者
nvm node_mirror https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/
nvm npm_mirror https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/npm/

提高 npm 下载 node.js 模块的速度

npm config set registry https://registry.npmmirror.com

好 现在可以使用nvm安装node.js了 在cmd控制台输入

nvm list available

image.png

CURRENT: 最新的开发版本,包含最新功能但可能不够稳定

LTS (Long Term Support): 长期支持版本,经过充分测试,适合生产环境

OLD STABLE: 历史稳定版本,已不再维护

OLD UNSTABLE: 历史不稳定版本,已废弃

也不一定要用这列表的版本只要官网有的版本都可以安装 我这边就直接安装24.10.0版本

nvm install 24.10.0

注意在nvm 1.2.2版本无法安装低版本node 小于14的node版本

如果需要安装14以下卸载高版本nvm,重新安装nvm 1.1.12版本。

开始使用对应node.js版本 nvm use 24.10.0

image.png