Skip to content

概述 ​

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_SECRETJWT 密钥是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 devPrisma 数据库迁移
pnpm prisma studioPrisma 数据库管理界面

常见问题 ​

端口被占用 ​

修改 .env 文件中的 PORT 值,或使用以下命令查找占用进程:

bash
lsof -i :3000

数据库连接失败 ​

  1. 确认数据库服务已启动
  2. 检查 DATABASE_URL 格式是否正确
  3. 确认数据库用户名密码正确

TypeScript 编译错误 ​

bash
pnpm run build

查看错误信息并修复类型问题。

相关资源 ​

Released under the MIT License.