# 为什么避免双后端

## 原则

- `Next.js` 负责页面、SSR、路由和前端壳
- `NestJS` 负责业务 API、鉴权、文件、AI、导出、任务队列

## 为什么不在 Next Route Handlers 再写一套业务逻辑

- 会出现两套 DTO、两套鉴权、两套错误码
- 文件上传、AI 状态流转、导出接口会分裂
- 教程会不断解释“为什么写在这里，不写在那里”
- 后续如果增加移动端、CLI、第三方接入，就无法稳定复用业务层

## 本项目落地约束

- `apps/web` 只调用 `apps/server`
- `apps/admin` 只调用 `apps/server`
- `Next Route Handlers` 默认不承载业务逻辑
- 业务规则统一进入 `NestJS`
