فهرست منبع

fix(工具库): 改进错误处理和数据库参数处理

前端添加错误详情日志和更友好的错误提示
后端将undefined参数转换为null避免数据库绑定错误
max_liu 2 هفته پیش
والد
کامیت
b61083f3d4
2فایلهای تغییر یافته به همراه21 افزوده شده و 16 حذف شده
  1. 18 15
      server/routes/toolsLibrary.js
  2. 3 1
      src/pages/ToolsLibraryDetail.js

+ 18 - 15
server/routes/toolsLibrary.js

@@ -90,22 +90,25 @@ router.put("/:id", async (req, res) => {
       WHERE tools_id = ?
     `;
 
-    await executeQuery(sql, [
-      tools_name,
-      tools_function_name,
-      tools_full_name,
-      tools_desc,
-      tools_version,
-      access_task_id,
-      status,
-      call_type,
-      api_provider,
-      api_url_path,
-      operate_path_data,
-      params_definition,
-      response_desc,
+    // 将 undefined 值转换为 null,避免数据库绑定参数错误
+    const params = [
+      tools_name ?? null,
+      tools_function_name ?? null,
+      tools_full_name ?? null,
+      tools_desc ?? null,
+      tools_version ?? null,
+      access_task_id ?? null,
+      status ?? null,
+      call_type ?? null,
+      api_provider ?? null,
+      api_url_path ?? null,
+      operate_path_data ?? null,
+      params_definition ?? null,
+      response_desc ?? null,
       id,
-    ]);
+    ];
+
+    await executeQuery(sql, params);
 
     res.json({ message: "Tool updated successfully" });
   } catch (error) {

+ 3 - 1
src/pages/ToolsLibraryDetail.js

@@ -68,7 +68,9 @@ const ToolsLibraryDetail = () => {
       message.success("更新成功");
       navigate("/tools-library");
     } catch (error) {
-      message.error("更新失败");
+      console.error("更新失败详情:", error);
+      const errorMessage = error.response?.data?.error || error.message || "更新失败";
+      message.error(`更新失败: ${errorMessage}`);
     } finally {
       setSaving(false);
     }