Skip to content

Express 核心功能实现

这是一个最小但完整的 Express 框架实现,展示了 Express 的核心概念和实现方式。

项目结构

express-core/
├── src/
│   ├── application.js      # 应用主类
│   ├── router.js          # 路由器实现
│   ├── layer.js           # 路由层实现
│   ├── request.js         # 请求对象扩展
│   ├── response.js        # 响应对象扩展
│   └── express.js        # 入口文件
├── test/
│   ├── application.test.js # 应用测试
│   ├── router.test.js     # 路由器测试
│   ├── request.test.js    # 请求对象测试
│   └── response.test.js   # 响应对象测试
├── package.json
└── README.md

安装依赖

bash
npm install

运行测试

bash
npm test

核心功能

1. 应用 (Application)

实现了 Express 应用类,支持中间件注册和路由处理。

2. 路由器 (Router)

实现了路由器,支持路由匹配和参数提取。

3. 路由层 (Layer)

实现了路由层,负责路径匹配和中间件执行。

4. 请求对象 (Request)

扩展了 Node.js 的请求对象,添加了便捷方法。

5. 响应对象 (Response)

扩展了 Node.js 的响应对象,提供了丰富的响应方法。

使用示例

创建应用

javascript
const express = require('./src/express');

const app = express();

// 使用中间件
app.use((req, res, next) => {
  console.log('Request:', req.method, req.url);
  next();
});

// 定义路由
app.get('/', (req, res) => {
  res.send('Hello World!');
});

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

// 启动服务器
app.listen(3000, () => {
  console.log('Server running at http://localhost:3000');
});

使用路由器

javascript
const express = require('./src/express');
const router = express.Router();

router.get('/', (req, res) => {
  res.send('Router Home');
});

router.get('/about', (req, res) => {
  res.send('About Page');
});

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

app.listen(3000);

下一步

查看 05-lesson-plan.md 了解详细的课程计划。


架构师AI杜公众号二维码

扫描二维码关注"架构师AI杜"公众号,获取更多技术内容和最新动态