Skip to content

附录:Node.js 核心知识点汇总

1. 核心模块速记(按使用频率排序,附常用方法)

fs 模块(文件系统)

  • 常用方法
    • fs.readFile():异步读取文件
    • fs.readFileSync():同步读取文件
    • fs.writeFile():异步写入文件
    • fs.writeFileSync():同步写入文件
    • fs.appendFile():追加写入文件
    • fs.unlink():删除文件
    • fs.mkdir():创建目录
    • fs.rmdir():删除目录
    • fs.readdir():读取目录内容
    • fs.existsSync():检查文件/目录是否存在

http 模块(HTTP服务器)

  • 常用方法
    • http.createServer():创建HTTP服务器
    • server.listen():启动服务器
    • http.get():发送GET请求
    • http.request():发送HTTP请求

path 模块(路径处理)

  • 常用方法
    • path.join():拼接路径
    • path.resolve():解析绝对路径
    • path.basename():获取文件名
    • path.dirname():获取目录名
    • path.extname():获取文件扩展名
    • path.normalize():规范化路径

url 模块(URL处理)

  • 常用方法
    • url.parse():解析URL
    • url.format():格式化URL
    • url.resolve():解析相对URL
    • new URL():创建URL对象

querystring 模块(查询字符串)

  • 常用方法
    • querystring.parse():解析查询字符串
    • querystring.stringify():序列化对象为查询字符串

util 模块(工具函数)

  • 常用方法
    • util.promisify():将回调函数转换为Promise
    • util.inspect():检查对象

process 模块(进程管理)

  • 常用属性和方法
    • process.env:环境变量
    • process.argv:命令行参数
    • process.cwd():当前工作目录
    • process.exit():退出进程

2. 常用npm命令汇总(快速查询)

项目初始化

  • npm init:初始化项目,生成package.json
  • npm init -y:快速初始化,使用默认值

依赖管理

  • npm install <package>:安装包到本地
  • npm install <package> --save-dev:安装为开发依赖
  • npm install <package> -g:全局安装
  • npm uninstall <package>:卸载包
  • npm update <package>:更新包
  • npm list:查看已安装的包
  • npm list -g:查看全局已安装的包

脚本执行

  • npm run <script>:执行package.json中的脚本
  • npm start:执行start脚本
  • npm test:执行test脚本
  • npm run dev:执行dev脚本(通常用于开发环境)

其他命令

  • npm version:查看npm版本
  • npm help:查看帮助
  • npm search <package>:搜索包
  • npm publish:发布包到npm

3. Express 核心用法与中间件汇总

核心用法

  • 创建应用const app = express()
  • 启动服务器app.listen(port, callback)
  • 路由
    • app.get(path, callback):处理GET请求
    • app.post(path, callback):处理POST请求
    • app.put(path, callback):处理PUT请求
    • app.delete(path, callback):处理DELETE请求
  • 响应方法
    • res.send():发送响应
    • res.json():发送JSON响应
    • res.status():设置状态码
    • res.redirect():重定向

常用中间件

  • 内置中间件

    • express.json():解析JSON请求体
    • express.urlencoded():解析URL编码的请求体
    • express.static():静态资源托管
  • 第三方中间件

    • cors:处理跨域
    • morgan:HTTP请求日志
    • helmet:安全头部设置
    • express-session:会话管理
    • passport:认证

4. 常用代码模板(复制即用,提高开发效率)

创建HTTP服务器

javascript
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/');
});

Express应用模板

javascript
const express = require('express');
const app = express();
const port = 3000;

// 中间件
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// 路由
app.get('/', (req, res) => {
  res.send('Hello Express');
});

// 启动服务器
app.listen(port, () => {
  console.log(`Server running on port ${port}`);
});

异步文件读取

javascript
const fs = require('fs').promises;

async function readFile() {
  try {
    const data = await fs.readFile('file.txt', 'utf8');
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

readFile();

Express路由模块化

javascript
// routes/users.js
const express = require('express');
const router = express.Router();

router.get('/', (req, res) => {
  res.json({ message: 'Get all users' });
});

router.post('/', (req, res) => {
  res.json({ message: 'Create user' });
});

module.exports = router;

// app.js
const express = require('express');
const userRoutes = require('./routes/users');

const app = express();
app.use('/api/users', userRoutes);

5. 新手易错点对照表(快速排查问题)

错误类型错误信息可能原因解决方案
模块导入Cannot find module 'xxx'模块未安装或路径错误安装模块或检查路径
端口占用EADDRINUSE: address already in use端口被其他进程占用杀死占用端口的进程或更换端口
文件路径ENOENT: no such file or directory路径错误使用绝对路径或检查路径是否正确
异步错误undefined 或 null异步代码执行顺序错误使用Promise或async/await
跨域错误Access-Control-Allow-Origin未设置CORS头使用cors中间件或手动设置CORS头
类型错误TypeError: Cannot read property 'xxx' of undefined访问未定义对象的属性检查对象是否存在
语法错误SyntaxError: Unexpected token代码语法错误检查代码语法
数据库错误ER_ACCESS_DENIED_ERROR数据库连接信息错误检查数据库连接配置

6. 常用第三方包推荐(按场景分类)

Web开发

  • 框架:express, koa, nestjs
  • 模板引擎:ejs, pug, handlebars
  • 认证:jsonwebtoken, passport
  • 会话管理:express-session, cookie-parser
  • 验证:express-validator, joi

数据库

  • MySQL:mysql2, sequelize
  • MongoDB:mongodb, mongoose
  • PostgreSQL:pg, typeorm
  • Redis:redis, ioredis

工具库

  • 日期时间:moment, dayjs
  • 工具函数:lodash, underscore
  • UUID:uuid
  • 环境变量:dotenv
  • 日志:winston, bunyan

网络请求

  • HTTP客户端:axios, node-fetch
  • WebSocket:socket.io
  • API文档:swagger-ui-express

开发工具

  • 自动重启:nodemon
  • 调试:debug
  • 测试:jest, mocha
  • 代码质量:eslint, prettier
  • 打包:webpack, rollup

部署

  • 进程管理:pm2
  • 容器化:docker
  • CI/CD:github-actions, jenkins

© 2026 编程马·菜鸟教程 版权所有