一、Node.js 简介
是什么:基于 Chrome V8 引擎的 JavaScript 运行时环境,用于构建高性能服务器端应用。
特点:事件驱动、非阻塞 I/O、轻量高效。
适用场景:API 服务、实时应用(如聊天)、微服务、工具脚本等。
二、安装 Node.js
1. 下载安装
Windows/macOS:访问 Node.js 官网 下载 LTS 版本安装包。
Linux:
# 使用 NodeSource 安装(以 Ubuntu 为例) curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - sudo apt-get install -y nodejs
2. 验证安装
node -v # 查看 Node.js 版本
npm -v # 查看 npm 版本
3. 使用版本管理工具(推荐)
nvm (Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash nvm install 18.17.1 # 安装指定版本 nvm use 18.17.1 # 切换版本
三、基础使用
1. 运行脚本
创建文件
app.js
:console.log("Hello, Node.js!");
执行命令:
node app.js
2. 创建 HTTP 服务器
const http = require('http');
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello, World!\n');
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server running at http://127.0.0.1:3000/');
});
运行后访问
http://localhost:3000
。
3. 常用核心模块
fs
:文件系统操作。path
:处理文件路径。http
:创建 HTTP 服务器/客户端。events
:事件处理。stream
:流操作。
四、包管理(npm)
1. 初始化项目
npm init # 交互式创建 package.json
npm init -y # 快速生成默认配置
2. 安装依赖
npm install express # 安装到 dependencies
npm install eslint --save-dev # 安装到 devDependencies
npm install -g nodemon # 全局安装工具
3. 常用命令
npm update <package> # 更新包
npm uninstall <package> # 卸载包
npm list # 查看已安装的包
npm run <script> # 运行 package.json 中的脚本
五、进阶使用
1. 使用框架(Express.js)
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello Express!');
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
2. 连接数据库(以 MongoDB 为例)
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/mydb');
const Schema = mongoose.Schema;
const userSchema = new Schema({ name: String, age: Number });
const User = mongoose.model('User', userSchema);
// 插入数据
new User({ name: 'Alice', age: 25 }).save();
3. 异步编程
Callback:
fs.readFile('file.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data); });
Promise/Async-Await:
async function readFile() { try { const data = await fs.promises.readFile('file.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); } }
4. 调试
内置调试器:
node inspect app.js
Chrome DevTools:
node --inspect-brk app.js
在 Chrome 中访问
chrome://inspect
。
六、项目部署
1. 进程管理(PM2)
npm install pm2 -g
pm2 start app.js # 启动应用
pm2 monit # 监控状态
pm2 save # 保存进程列表
pm2 startup # 设置开机自启
2. 使用 Docker
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]
构建并运行:
docker build -t my-node-app .
docker run -p 3000:3000 my-node-app
3. 环境变量管理
使用 dotenv
加载 .env
文件:
npm install dotenv
require('dotenv').config();
console.log(process.env.DB_HOST);
七、最佳实践
错误处理:始终捕获 Promise 异常和同步错误。
使用中间件:如
helmet
提升安全性,morgan
记录日志。代码风格:使用 ESLint + Prettier 统一代码规范。
性能优化:
使用
cluster
模块利用多核 CPU。避免阻塞主线程(如同步 IO 操作)。
八、学习资源
官方文档:Node.js Docs
社区:Stack Overflow(标签
node.js
)书籍:《Node.js Design Patterns》