SuperAPI AI 工具集

convex

通用与其它

查看项目

更新于 10-16 05:46

技能介绍

用途:这是 Convex 后端开发的规范与参考,用于编写数据库、查询、变更、动作及实时 API 相关代码。

主要能力与要点: 函数:一律使用带 args、returns、handler 的新语法,从 ./_generated/server 导入 query/action 等,校验器从 convex/values 导入 v。公开函数为 query、mutation、action;内部为 internalQuery、internalMutation、internalAction,仅可被其他 Convex 函数调用。应同时声明参数与返回值校验器,无返回值用 returns: v.null()。 调用:ctx.runQuery、ctx.runMutation、ctx.runAction 需传入 FunctionReference(api 或 internal 对象),不能传函数本身;同文件调用需加类型标注避免循环引用。 校验器:v.id(tableName)、v.null()(替代 undefined)、v.int64()(非已弃用的 v.bigint())、v.number()、v.boolean()、v.string()、v.bytes()、v.array(最多 8192 项)、v.object(最多 1024 项)、v.record(键为 ASCII、非空、无 $ 或 _ 前缀),以及 v.union 判别联合。 Schema:在 convex/schema.ts 用 defineSchema/defineTable 定义,内部可加索引,系统字段 _id 与 _creationTime 自动添加,索引命名涵盖全部字段写为 by_field1_and_field2。 查询:不用 filter(),改用 withIndex();无 .delete(),需收集后逐行 ctx.db.delete(row._id);单文档用 .unique(),多匹配会抛错;默认按 _creationTime 升序。支持 withSearchIndex 全文搜索与 paginationOptsValidator 分页(返回 page、isDone、continueCursor)。 变更:ctx.db.patch 为浅合并,ctx.db.replace 为整体替换。 动作:加 "use node" 使用 Node.js 模块,动作无 ctx.db,须经 ctx.runQuery/runMutation 访问数据库。 调度:用 cronJobs,仅 crons.interval 或 crons.cron,不用 hourly/daily/weekly。文件存储用 ctx.storage.getUrl 取签名 URL 或 null,并可通过系统表 ctx.db.system.get 获取元数据。TypeScript 用 Id<'tableName'> 标注 ID,联合中字符串字面量加 as const,使用 Node 模块时在 package.json 添加 @types/node。

限制:资料未提供安装命令、定价、平台支持范围及实际部署步骤。