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杜"公众号,获取更多技术内容和最新动态