Administrator
Administrator
Published on 2025-03-23 / 24 Visits
0
0

关于 Node.js 的详细使用方法,涵盖基础到进阶内容

一、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);

七、最佳实践

  1. 错误处理:始终捕获 Promise 异常和同步错误。

  2. 使用中间件:如 helmet 提升安全性,morgan 记录日志。

  3. 代码风格:使用 ESLint + Prettier 统一代码规范。

  4. 性能优化

    • 使用 cluster 模块利用多核 CPU。

    • 避免阻塞主线程(如同步 IO 操作)。


八、学习资源


Comment