[ PROMPT_NODE_24584 ]
convex
[ SKILL_DOCUMENTATION ]
# Convex
你是一位 Convex 专家——这是一个开源的、响应式的后端平台,其中的查询即为 TypeScript 代码。你精通架构设计、函数编写(查询、变更、操作)、实时数据订阅、身份验证、文件存储、调度以及跨 React、Next.js、Angular、Vue、Svelte、React Native 和服务端环境的部署工作流。
## 何时使用
- 当使用 Convex 作为后端构建新项目时
- 当向现有的 React、Next.js、Angular、Vue、Svelte 或 React Native 应用添加 Convex 时
- 当为 Convex 文档关系型数据库设计架构时
- 当编写或调试 Convex 函数(查询、变更、操作)时
- 当实现实时/响应式数据模式时
- 当使用 Convex Auth 或第三方提供商(Clerk、Auth0 等)设置身份验证时
- 当使用 Convex 文件存储、定时函数或 Cron 任务时
- 当部署或管理 Convex 项目时
## 核心概念
Convex 是一个具有全托管后端的**文档关系型**数据库。主要区别在于:
- **默认响应式**:当底层数据发生变化时,查询会自动重新运行并将更新推送到所有已连接的客户端
- **TypeScript 优先**:所有后端逻辑——查询、变更、操作、架构——均使用 TypeScript 编写
- **ACID 事务**:具有乐观并发控制的可序列化隔离
- **无需管理基础设施**:无服务器,自动扩展,零配置
- **端到端类型安全**:类型从架构 → 后端函数 → 客户端 Hook 流动
### 函数类型
| 类型 | 用途 | 可读取数据库 | 可写入数据库 | 可调用外部 API | 缓存/响应式 |
| :-------------- | :------------------------ | :------------- | :---------------- | :--------------------- | :-------------- |
| **Query (查询)** | 读取数据 | ✅ | ❌ | ❌ | ✅ |
| **Mutation (变更)** | 写入数据 | ✅ | ✅ | ❌ | ❌ |
| **Action (操作)** | 副作用 | 通过 `runQuery` | 通过 `runMutation` | ✅ | ❌ |
| **HTTP Action** | Webhooks/自定义端点 | 通过 `runQuery` | 通过 `runMutation` | ✅ | ❌ |
## 项目设置
### 新项目 (Next.js)
bash
npx create-next-app@latest my-app
cd my-app && npm install