第一部分:Node.js 简介与安装前准备
1.1 Node.js 是什么?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够使用 JavaScript 编写服务器端应用程序。Node.js 的出现彻底改变了 JavaScript 只能运行在浏览器中的局面,使其成为一门全栈开发语言。
主要特点:
- 事件驱动、非阻塞 I/O 模型
- 轻量且高效
- 单线程但支持高并发
Node.js 是基于 Chrome V8 引擎的 JavaScript 运行环境。本文详细介绍了在 Windows 系统上下载、安装及配置 Node.js 的全过程,包括 LTS 与 Current 版本选择、环境变量设置、npm 包管理器使用以及常见问题的解决方法。同时提供了 VS Code 开发环境配置建议和 Express 示例项目创建步骤,帮助开发者快速搭建 Node.js 开发环境并进行基础实践。
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够使用 JavaScript 编写服务器端应用程序。Node.js 的出现彻底改变了 JavaScript 只能运行在浏览器中的局面,使其成为一门全栈开发语言。
主要特点:
在安装 Node.js 之前,请确保您的 Windows 系统满足以下要求:
最低系统要求:
检查您的 Windows 版本:
Win + R 键winver 并按回车LTS 版本(推荐)
Current 版本
对于大多数用户,我们推荐选择 LTS 版本。点击 "LTS" 按钮下载安装包。
版本号说明:
Node.js 为 Windows 提供多种安装包格式:
步骤 1:欢迎界面
步骤 2:许可协议
步骤 3:选择安装位置
C:\Program Files\nodejs\步骤 4:自定义安装选项
这是最重要的步骤,让我们详细了解每个选项:
Node.js runtime
npm package manager
Online documentation shortcuts
Add to PATH
步骤 5:自动安装必要工具
步骤 6:准备安装
Win + R 键cmd 并按回车node --version
应该显示类似:v18.12.1
3. 验证 npm 版本:
npm --version
应该显示类似:8.19.2
node 并按回车,进入 Node.js REPL(交互式解释器)console.log("Hello, Node.js!");
Hello, Node.js!Ctrl + C 两次退出 REPLC:\nodejs-projects\hello.js// hello.js
const message = "欢迎来到 Node.js 世界!";
console.log(message);
// 显示当前日期和时间
const currentDate = new Date();
console.log(`当前时间:${currentDate.toLocaleString()}`);
// 简单的计算
const a = 5, b = 3;
console.log(`${a} + ${b} = ${a + b}`);
cd C:\nodejs-projects
node hello.js
欢迎来到 Node.js 世界!
当前时间:2023/11/15 14:30:25
5 + 3 = 8
推荐编辑器:
安装以下有用的扩展:
查看 > 终端 或 `Ctrl + ``npm(Node Package Manager)是 Node.js 的包管理器,世界上最大的软件注册表。
主要功能:
# 初始化新项目
npm init
npm init -y # 快速初始化,使用默认配置
# 安装包
npm install package-name # 安装到 dependencies
npm install package-name --save-dev # 安装到 devDependencies
npm install package-name -g # 全局安装
# 卸载包
npm uninstall package-name
# 更新包
npm update package-name
npm update -g # 更新全局包
# 查看已安装的包
npm list
npm list -g # 查看全局包
npm list --depth=0 # 查看顶层包
# 查看包信息
npm view package-name
npm info package-name
# 运行脚本
npm run script-name
# 审计安全性
npm audit
npm audit fix
package.json 是 Node.js 项目的核心配置文件:
{
"name": "my-project",
"version": "1.0.0",
"description": "我的 Node.js 项目",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest"
},
"keywords": ["nodejs", "javascript"],
"author": "你的名字",
"license": "MIT",
"dependencies": {
"express": "^4.18.2",
"lodash": "^4.17.21"
},
"devDependencies": {
"nodemon": "^2.0.20",
"jest": "^29.3.1"
},
"engines": {
"node": ">=18.0.0"
}
}
dependencies
npm install package-name --save 安装devDependencies
npm install package-name --save-dev 安装peerDependencies
optionalDependencies
由于网络原因,有时需要配置国内镜像源:
使用淘宝 npm 镜像:
# 设置淘宝镜像
npm config set registry https://registry.npmmirror.com/
# 恢复官方镜像
npm config set registry https://registry.npmjs.org/
# 查看当前配置
npm config list
# 查看镜像地址
npm config get registry
使用 nrm 管理镜像源:
# 安装 nrm
npm install -g nrm
# 列出可用的镜像源
nrm ls
# 使用淘宝镜像
nrm use taobao
# 测试镜像速度
nrm test
默认情况下,全局包安装在 %APPDATA%\npm,可以自定义路径:
# 创建全局安装目录
mkdir C:\NodeJS\global_modules
mkdir C:\NodeJS\global_cache
# 配置 npm
npm config set prefix "C:\NodeJS\global_modules"
npm config set cache "C:\NodeJS\global_cache"
# 将路径添加到系统 PATH
# 1. 右键 "此电脑" > "属性" > "高级系统设置"
# 2. 点击 "环境变量"
# 3. 在 "系统变量" 中找到 "Path",点击 "编辑"
# 4. 添加新路径:C:\NodeJS\global_modules
确保以下路径在系统 PATH 中:
C:\Program Files\nodejs\(Node.js 安装目录)C:\Users\你的用户名\AppData\Roaming\npm(全局包目录,如果使用默认设置)检查环境变量:
echo %PATH%
问题 1:权限错误
Error: EPERM: operation not permitted
解决方案:
问题 2:Node.js 命令未找到
'node' 不是内部或外部命令,也不是可运行的程序
解决方案:
问题 3:npm 安装超时
npm ERR! network timeout
解决方案:
npm config set timeout 60000问题 4:权限被拒绝
npm ERR! Error: EACCES: permission denied
解决方案:
npm cache clean --force 清理缓存问题 5:需要特定 Node.js 版本
解决方案: 使用 nvm-windows(Node Version Manager for Windows)
# 安装 nvm-windows
# 下载地址:https://github.com/coreybutler/nvm-windows/releases
# 安装特定版本
nvm install 18.12.1
# 使用特定版本
nvm use 18.12.1
# 列出已安装版本
nvm list
# 设置默认版本
nvm alias default 18.12.1
调试工具:
--inspect 参数)进程管理:
npm install -g nodemon
nodemon app.js
npm install -g pm2
pm2 start app.js
pm2 monit
测试框架:
my-project/
├── src/ # 源代码目录
│ ├── controllers/ # 控制器
│ ├── models/ # 数据模型
│ ├── routes/ # 路由
│ ├── middleware/ # 中间件
│ └── utils/ # 工具函数
├── tests/ # 测试文件
├── public/ # 静态资源
├── node_modules/ # 依赖包(自动生成)
├── package.json # 项目配置
├── package-lock.json # 依赖锁文件
├── .gitignore # Git 忽略文件
├── README.md # 项目说明
└── app.js # 应用入口文件
ESLint - 代码检查工具:
npm install eslint --save-dev
npx eslint --init
Prettier - 代码格式化工具:
npm install prettier --save-dev
Husky - Git 钩子工具:
npm install husky --save-dev
npx husky install
# 创建项目目录
mkdir my-express-app
cd my-express-app
# 初始化 package.json
npm init -y
# 安装 Express 框架
npm install express
# 安装开发依赖
npm install nodemon --save-dev
创建 app.js 文件:
const express = require('express');
const app = express();
const port = 3000;
// 中间件
app.use(express.json());
app.use(express.static('public'));
// 路由
app.get('/', (req, res) => {
res.json({
message: '欢迎来到 Express 服务器!',
timestamp: new Date().toISOString(),
nodeVersion: process.version
});
});
app.get('/api/users', (req, res) => {
const users = [
{ id: 1, name: '张三', email: '[email protected]' },
{ id: 2, name: '李四', email: '[email protected]' },
{ id: 3, name: '王五', email: '[email protected]' }
];
res.json(users);
});
app.post('/api/users', (req, res) => {
const { name, email } = req.body;
const newUser = {
id: Date.now(),
name,
email,
createdAt: new Date().toISOString()
};
res.status(201).json(newUser);
});
// 错误处理中间件
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).json({ error: '服务器内部错误!' });
});
// 404 处理
app.use((req, res) => {
res.status(404).json({ error: '路由未找到!' });
});
// 启动服务器
app.listen(port, () => {
console.log(`服务器运行在 http://localhost:${port}`);
console.log(`Node.js 版本:${process.version}`);
});
修改 package.json 的 scripts 部分:
{
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js",
"test": "echo \"Error: no test specified\" && exit 1"
}
}
# 开发模式(使用 nodemon)
npm run dev
# 生产模式
npm start
访问 http://localhost:3000/ 查看应用运行情况。
通过本详细指南,您已经完成了:
Node.js 生态系统庞大而活跃,继续学习的方向包括:

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online