Loading...
Loading...
Compare original and translation side by side
undefinedundefinedgraph TB
Client[Client/Browser] --> API[API Layer]
API --> Services[Business Logic]
Services --> DB[(Database)]
Services --> Cache[(Redis Cache)]
API --> Queue[Message Queue]undefinedgraph TB
Client[客户端/浏览器] --> API[API层]
API --> Services[业务逻辑]
Services --> DB[(数据库)]
Services --> Cache[(Redis缓存)]
API --> Queue[消息队列]undefinedsrc/
├── app/ # Application entry point and routing
├── components/ # Reusable UI components
├── lib/ # Utility functions and helpers
├── services/ # Business logic layer
├── models/ # Data models and schemas
└── types/ # TypeScript type definitionssrc/
├── app/ # 应用入口与路由
├── components/ # 可复用UI组件
├── lib/ # 工具函数与辅助类
├── services/ # 业务逻辑层
├── models/ # 数据模型与 schema
└── types/ # TypeScript 类型定义src/app/page.tsxsrc/app/api/src/app/page.tsxsrc/app/api/src/services/auth/src/services/users/src/models/src/services/auth/src/services/users/src/models/sequenceDiagram
Client->>API: POST /api/auth/register
API->>Validation: Validate input
Validation->>Services: UserService.create()
Services->>Database: Insert user
Database-->>Services: User created
Services->>Email: Send welcome email
Services-->>API: Return JWT
API-->>Client: 201 CreatedsequenceDiagram
Client->>API: POST /api/auth/register
API->>Validation: 校验输入
Validation->>Services: UserService.create()
Services->>Database: 插入用户
Database-->>Services: 用户创建完成
Services->>Email: 发送欢迎邮件
Services-->>API: 返回JWT
API-->>Client: 201 Createdsrc/app/api/[endpoint]/route.tssrc/services/src/models/src/app/api/[endpoint]/route.tssrc/services/src/models/// src/services/users/user.service.ts
export class UserService {
async findById(id: string) {
return prisma.user.findUnique({ where: { id } });
}
async create(data: CreateUserDto) {
// Validation, business logic, database operations
}
}// src/services/users/user.service.ts
export class UserService {
async findById(id: string) {
return prisma.user.findUnique({ where: { id } });
}
async create(data: CreateUserDto) {
// 校验、业务逻辑、数据库操作
}
}// src/repositories/user.repository.ts
export class UserRepository {
async findAll() {
/* DB queries only */
}
async findById(id: string) {
/* DB queries only */
}
}// src/repositories/user.repository.ts
export class UserRepository {
async findAll() {
/* 仅包含数据库查询 */
}
async findById(id: string) {
/* 仅包含数据库查询 */
}
}src/app/api/[name]/route.tsexport async function GET(req: Request) {
// Implementation
}src/services/[name].service.tssrc/types/[name].tssrc/app/api/[name]/route.test.tssrc/app/api/[name]/route.tsexport async function GET(req: Request) {
// 实现逻辑
}src/services/[name].service.tssrc/types/[name].tssrc/app/api/[name]/route.test.tsprisma/schema.prismamodel NewModel {
id String @id @default(cuid())
// fields
}npx prisma migrate dev --name add-new-modelnpx prisma generatesrc/services/new-model.service.tssrc/app/api/new-model/prisma/schema.prismamodel NewModel {
id String @id @default(cuid())
// 字段定义
}npx prisma migrate dev --name add-new-modelnpx prisma generatesrc/services/new-model.service.tssrc/app/api/new-model/src/components/NewComponent/NewComponent.tsxNewComponent.module.cssNewComponent.test.tsxNewComponent.stories.tsxsrc/components/index.tssrc/components/NewComponent/NewComponent.tsxNewComponent.module.cssNewComponent.test.tsxNewComponent.stories.tsxsrc/components/index.tssrc/services/auth/auth.service.tssrc/middleware/auth.middleware.tssrc/app/api/auth/src/services/auth/auth.service.tssrc/middleware/auth.middleware.tssrc/app/api/auth/| File | Purpose | Modify For |
|---|---|---|
| Root layout, providers | Global layout changes |
| Database connection | Connection config |
| API client setup | Request interceptors |
| Next.js middleware | Auth, redirects |
| Database schema | Data model changes |
| Environment vars | Adding config values |
| 文件路径 | 用途 | 修改场景 |
|---|---|---|
| 根布局、提供者配置 | 全局布局修改 |
| 数据库连接配置 | 连接参数调整 |
| API客户端设置 | 请求拦截器配置 |
| Next.js中间件 | 认证、重定向逻辑 |
| 数据库schema | 数据模型修改 |
| 环境变量示例 | 添加新配置项 |
nextprismareacttypescriptnextprismareacttypescriptzodbcryptjsonwebtokendate-fnszodbcryptjsonwebtokendate-fnspnpm testpnpm testnpx prisma generatenpx prisma generate.nextrm -rf .nextrm -rf node_modules && pnpm installnpx prisma generatenpx prisma generaterm -rf .nextrm -rf node_modules && pnpm installundefinedundefinednext.config.jsvite.config.tsnest-cli.jsonmanage.pyCargo.tomlnext.config.jsvite.config.tsnest-cli.jsonmanage.pyCargo.tomlindex.htmlmain.tsxapp.tsx_app.tsxmain.tsserver.tsapp.pyindex.jscli.ts__main__.pymain.goindex.htmlmain.tsxapp.tsx_app.tsxmain.tsserver.tsapp.pyindex.jscli.ts__main__.pymain.gograph LR
Client --> NextJS
NextJS --> API
API --> Services
Services --> Prisma
Prisma --> PostgreSQLgraph LR
Client --> NextJS
NextJS --> API
API --> Services
Services --> Prisma
Prisma --> PostgreSQLsequenceDiagram
participant Client
participant API
participant Service
participant DB
Client->>API: Request
API->>Service: Process
Service->>DB: Query
DB-->>Service: Data
Service-->>API: Result
API-->>Client: ResponsesequenceDiagram
participant Client
participant API
participant Service
participant DB
Client->>API: 请求
API->>Service: 处理
Service->>DB: 查询
DB-->>Service: 数据
Service-->>API: 结果
API-->>Client: 响应graph TB
API[API Layer] --> Auth[Auth Service]
API --> Users[User Service]
Auth --> DB[(Database)]
Users --> DB
Users --> Cache[(Cache)]graph TB
API[API层] --> Auth[认证服务]
API --> Users[用户服务]
Auth --> DB[(数据库)]
Users --> DB
Users --> Cache[(缓存)]