
什么是Controller
在软件架构中,Controller 是一种关键的设计模式,主要用于处理用户输入并协调模型和视图之间的交互。在MVC(模型-视图-控制器)架构中,Controller 充当中介者,将用户的请求传递给模型进行数据处理,然后将结果返回给视图进行显示。
Controller的基本功能
- 接收用户请求
- 调用模型处理数据
- 选择合适的视图进行响应
实现Controller的步骤
1. 构建基本项目结构
在开始之前,我们需要有基本的文件夹结构,例如:
/myapp
/controllers
/models
/views
app.js
2. 创建Controller文件
在controllers文件夹中创建一个新的Controller文件,比如 UserController.js。
const UserModel = require('../models/UserModel');
class UserController {
static async getUser(req, res) {
const userId = req.params.id;
const user = await UserModel.findById(userId);
res.json(user);
}
}
module.exports = UserController;
3. 设置路由
在主应用文件 app.js 中导入Controller,并设置路由:
const express = require('express');
const UserController = require('./controllers/UserController');
const app = express();
const port = 3000;
app.get('/user/:id', UserController.getUser);
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
4. 测试Controller
启动服务器后,可以通过浏览器或API工具(如Postman)访问URL:
http://localhost:3000/user/1
这将调用 UserController.getUser 方法并返回用户信息。
注意事项
- 确保正确处理异步操作,以避免未处理的承诺(Promise)
- 在Controller中不要直接操作数据库,应该通过模型来管理数据
- 做好错误处理,考虑使用中间件处理未捕获的错误
实用技巧
- 使用中间件进行身份验证和权限控制,确保安全性
- 尽量保持Controller的简洁,避免过多的业务逻辑,应该将复杂逻辑放到模型中处理
- 使用RESTful风格设计API,提高接口的可读性和一致性



