首页技术栈归档照片墙音乐日记随想收藏夹友链留言关于

Express.js 框架详解

写作时间:2026-07-08

Express.js 框架详解

简介

Express 是 Node.js 最流行的 Web 框架,提供了路由、中间件等核心能力。

npm install express

快速开始

const express = require('express');
const app = express();
app.get('/', (req, res) => res.json({ message: 'Hello' }));
app.listen(3000);

路由系统

基本路由与参数

app.get('/users', getUsers);
app.post('/users', createUser);
app.get('/users/:id', (req, res) => {
  res.json({ id: req.params.id });
});

模块化路由

// routes/users.js
const router = express.Router();
router.get('/', getUsers);
router.post('/', createUser);
module.exports = router;

// app.js
app.use('/api/users', usersRouter);

中间件

内置中间件

app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(express.static('public'));

自定义中间件

// 日志中间件
app.use((req, res, next) => {
  console.log(`${req.method} ${req.url}`);
  next();
});

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).json({ error: err.message });
});

RESTful API 示例

const express = require('express');
const app = express();
app.use(express.json());

let articles = [];

app.get('/api/articles', (req, res) => res.json(articles));
app.post('/api/articles', (req, res) => {
  const article = { id: Date.now(), ...req.body };
  articles.push(article);
  res.status(201).json(article);
});
app.put('/api/articles/:id', (req, res) => {
  const idx = articles.findIndex(a => a.id == req.params.id);
  if (idx === -1) return res.status(404).json({ error: 'Not Found' });
  articles[idx] = { ...articles[idx], ...req.body };
  res.json(articles[idx]);
});
app.delete('/api/articles/:id', (req, res) => {
  articles = articles.filter(a => a.id != req.params.id);
  res.status(204).end();
});
avatar

yuanyourdomain

写代码,做研究,记录生活。

RECOMMENDED

MyBatis 动态 SQL

2026-07-08

Nginx 基础入门

2026-07-08

Maven 多模块与私服

2026-07-08