functions.md 1.5 KB

调用云函数接口

const response = await fetch('http://your-server.com/api/functions', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    id: '45sadosownxxx',
    data: {...},
  })
});

云函数代码示例

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 // 返回错误信息便于调试
    });
  }
}