warrior преди 5 дни
родител
ревизия
95f878b0da
променени са 1 файла, в които са добавени 45 реда и са изтрити 0 реда
  1. 45 0
      rules/functions.md

+ 45 - 0
rules/functions.md

@@ -0,0 +1,45 @@
+# 调用云函数接口
+
+```javascript
+const response = await fetch('http://your-server.com/api/functions', {
+  method: 'POST',
+  headers: { 'Content-Type': 'application/json' },
+  body: JSON.stringify({
+    id: '45sadosownxxx',
+    data: {...},
+  })
+});
+```
+
+# 云函数代码示例
+``` js
+async function handler(request, response) {
+  try {
+    const { body } = request;
+    const { user, context } = body;
+    // 1. 修复版本号错误:0.0.9 是合法数值,无需引号(原代码语法无错,但建议显式为字符串更通用)
+    let productObj = new Parse.Object('Department');
+    productObj.set('name', 'test_hb'); // 推荐用字符串存储版本号,避免数值解析问题
+    productObj.set('leaderId', '1234567');
+    productObj.set('description', '123@qq.com'); // 日志数据初始化为空对象
+    productObj.set('user', user.id);
+    // 2. 保存数据到 Parse 数据库(使用主密钥确保权限)
+    await productObj.save(null, { useMasterKey: true });
+
+    // 3. 返回成功响应
+    response.status(200).json({ 
+      success: true, 
+      logId: productObj.id, // 补充返回日志ID,便于后续查询
+      message: '日志保存成功' 
+    });
+  } catch (error) {
+    // 4. 新增错误捕获:处理保存失败的情况(如权限不足、表不存在等)
+    console.error('FunctionaLog 保存失败:', error);
+    response.status(500).json({
+      success: false,
+      message: '日志保存失败',
+      error: error.message // 返回错误信息便于调试
+    });
+  }
+}
+```