|
|
@@ -309,14 +309,34 @@ export function createCrudRoutes<
|
|
|
user?.id
|
|
|
);
|
|
|
|
|
|
- return c.json({
|
|
|
- // data: z.array(listSchema).parse(data),
|
|
|
- data: await parseWithAwait(z.array(listSchema), data),
|
|
|
- pagination: { total, current: page, pageSize }
|
|
|
- }, 200);
|
|
|
+ console.debug('数据库返回的原始数据:', JSON.stringify(data, null, 2));
|
|
|
+
|
|
|
+ try {
|
|
|
+ const validatedData = await parseWithAwait(z.array(listSchema), data);
|
|
|
+ return c.json({
|
|
|
+ data: validatedData,
|
|
|
+ pagination: { total, current: page, pageSize }
|
|
|
+ }, 200);
|
|
|
+ } catch (validationError) {
|
|
|
+ if (validationError instanceof z.ZodError) {
|
|
|
+ console.debug('Zod验证错误详情:', validationError);
|
|
|
+ console.debug('验证失败的字段:', validationError.errors.map(e => ({
|
|
|
+ path: e.path,
|
|
|
+ message: e.message,
|
|
|
+ code: e.code
|
|
|
+ })));
|
|
|
+ return c.json({
|
|
|
+ code: 400,
|
|
|
+ message: '参数验证失败',
|
|
|
+ errors: validationError.errors || validationError.message
|
|
|
+ }, 400);
|
|
|
+ }
|
|
|
+ throw validationError;
|
|
|
+ }
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: JSON.parse(error.message) }, 400);
|
|
|
+ console.debug('Zod验证错误详情:', error);
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
}
|
|
|
return c.json({
|
|
|
code: 500,
|
|
|
@@ -358,7 +378,8 @@ export function createCrudRoutes<
|
|
|
return c.json(await parseWithAwait(getSchema, result), 201);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: JSON.parse(error.message) }, 400);
|
|
|
+ console.debug('Zod验证错误详情:', error);
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
}
|
|
|
|
|
|
// 处理数据库唯一约束错误
|
|
|
@@ -430,7 +451,8 @@ export function createCrudRoutes<
|
|
|
return c.json(await parseWithAwait(getSchema, result), 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: JSON.parse(error.message) }, 400);
|
|
|
+ console.debug('Zod验证错误详情:', error);
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
}
|
|
|
if (error instanceof PermissionError) {
|
|
|
return c.json({ code: 403, message: error.message }, 403);
|
|
|
@@ -481,7 +503,8 @@ export function createCrudRoutes<
|
|
|
return c.json(await parseWithAwait(getSchema, result), 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: JSON.parse(error.message) }, 400);
|
|
|
+ console.debug('Zod验证错误详情:', error);
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
}
|
|
|
|
|
|
// 处理权限错误,返回403状态码
|
|
|
@@ -536,7 +559,8 @@ export function createCrudRoutes<
|
|
|
return c.body(null, 204);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: JSON.parse(error.message) }, 400);
|
|
|
+ console.debug('Zod验证错误详情:', error);
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
}
|
|
|
|
|
|
// 处理权限错误,返回403状态码
|
|
|
@@ -626,7 +650,8 @@ export function createCrudRoutes<
|
|
|
}, 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: JSON.parse(error.message) }, 400);
|
|
|
+ console.debug('Zod验证错误详情:', error);
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
}
|
|
|
|
|
|
// 处理权限错误,返回403状态码
|
|
|
@@ -692,7 +717,8 @@ export function createCrudRoutes<
|
|
|
return c.json(await parseWithAwait(getSchema, result), 200);
|
|
|
} catch (error) {
|
|
|
if (error instanceof z.ZodError) {
|
|
|
- return c.json({ code: 400, message: '参数验证失败', errors: JSON.parse(error.message) }, 400);
|
|
|
+ console.debug('Zod验证错误详情:', error);
|
|
|
+ return c.json({ code: 400, message: '参数验证失败', errors: error.errors || error.message }, 400);
|
|
|
}
|
|
|
if (error instanceof PermissionError) {
|
|
|
return c.json({ code: 403, message: error.message }, 403);
|