主题
概述
Express 是一个简洁灵活的 Node.js Web 应用框架,提供了一系列强大的特性来帮助你创建各种 Web 和移动应用程序。它是 Node.js 社区中使用最广泛的后端框架,拥有丰富的中间件生态。
为什么选择 Express?
- 轻量灵活:核心极简,按需添加中间件
- 生态丰富:海量中间件和社区资源
- 上手简单:学习曲线低,文档完善
- 成熟稳定:经过多年生产环境验证
技术特性
| 特性 | 说明 |
|---|---|
| 编程语言 | JavaScript / TypeScript |
| 架构模式 | MVC / 中间件 |
| ORM 支持 | Prisma, TypeORM, Sequelize |
| 数据库 | PostgreSQL, MySQL, SQLite, MongoDB |
| 性能评分 | ★★★★☆ |
| 学习曲线 | 低 |
| API 文档 | Swagger (需自行集成) |
| 测试支持 | Jest, Mocha |
生成的项目结构
ThesisAI 生成的 Express 项目采用清晰的分层架构:
backend/
├── src/
│ ├── index.ts # 入口文件
│ ├── routes/ # 路由定义
│ │ ├── index.ts # 路由汇总
│ │ └── users.ts # 用户路由
│ ├── controllers/ # 控制器
│ ├── middlewares/ # 中间件(认证、错误处理等)
│ ├── services/ # 业务逻辑层
│ ├── models/ # 数据模型
│ ├── config/ # 配置文件
│ │ └── database.ts # 数据库配置
│ └── types/ # TypeScript 类型定义
├── prisma/ # Prisma Schema(如使用)
│ └── schema.prisma
├── .env.example # 环境变量示例
├── package.json
└── tsconfig.json # TypeScript 配置开发环境
环境要求
| 依赖 | 版本要求 | 说明 |
|---|---|---|
| Node.js | >= 18.0 | 推荐 LTS 版本 |
| pnpm | >= 8.0 | 包管理器 |
安装依赖
bash
cd backend
pnpm install首次运行
首次运行需要安装依赖,这可能需要几分钟时间。
环境变量
创建 .env 文件并配置以下变量:
bash
cp .env.example .env| 变量名 | 说明 | 必填 | 默认值 |
|---|---|---|---|
PORT | 服务端口 | 否 | 3000 |
NODE_ENV | 运行环境 | 否 | development |
DATABASE_URL | 数据库连接字符串 | 是 | - |
JWT_SECRET | JWT 密钥 | 是 | your-secret-key |
数据库迁移
如果项目使用了 Prisma:
bash
pnpm prisma migrate dev如果使用 TypeORM:
bash
pnpm typeorm migration:run启动开发服务器
bash
pnpm run dev:::success 服务启动成功
- API 地址:
http://localhost:3000 - 健康检查:
http://localhost:3000/health
如果看到 Server is running on port 3000 类似的消息,说明服务启动成功! :::
常用命令
| 命令 | 说明 |
|---|---|
pnpm run dev | 开发模式启动(热重载) |
pnpm run build | 编译 TypeScript |
pnpm run start | 生产模式启动 |
pnpm run lint | 代码检查 |
pnpm prisma migrate dev | Prisma 数据库迁移 |
pnpm prisma studio | Prisma 数据库管理界面 |
常见问题
端口被占用
修改 .env 文件中的 PORT 值,或使用以下命令查找占用进程:
bash
lsof -i :3000数据库连接失败
- 确认数据库服务已启动
- 检查
DATABASE_URL格式是否正确 - 确认数据库用户名密码正确
TypeScript 编译错误
bash
pnpm run build查看错误信息并修复类型问题。