- 当数据库操作出现唯一约束冲突时,返回明确的400错误提示 - 优化错误信息,帮助用户理解数据唯一性约束问题
@@ -307,6 +307,12 @@ export function createCrudRoutes<
if (error instanceof z.ZodError) {
return c.json({ code: 400, message: '参数验证失败', errors: JSON.parse(error.message) }, 400);
}
+
+ // 处理数据库唯一约束错误
+ if (error instanceof Error && error.message.includes('duplicate key value violates unique constraint')) {
+ return c.json({ code: 400, message: '数据已存在,请检查唯一性约束' }, 400);
+ }
return c.json({
code: 500,
message: error instanceof Error ? error.message : '创建资源失败'