uni-app 云函数无法在云数据库中添加数据,只能在unicloud网页后台中添加该条数据

uni-app 云函数无法在云数据库中添加数据,只能在unicloud网页后台中添加该条数据

示例代码:

var a={  
    "title": "<p>下面代码输出的结果是()<br><br>\"<?php $age = 20; echo $age>18 ?'已成年':'未成年';?>\"</p>",  
}  
a=JSON.parse(JSON.stringify(a))  
await db.collection('test-test').add(a)

操作步骤:

  • 任意云函数中执行代码

预期结果:

  • 添加成功

实际结果:

  • 报页面错误

bug描述:

无法正常使用云函数给云数据库添加数据,直接报错,只能使用unicloud网页后台才能正常添加数据

4 回复

仔细检查发现只要数据值含 “<?php echo” 就无法通过云函数添加数据


还包括这个 file:///etc/

阿里云反馈已修复此问题

在 uni-app 中使用云函数向云数据库中添加数据时,如果遇到无法添加数据的问题,而只能在 Unicloud 网页后台中添加数据,可能是由于以下几个原因导致的。以下是一些可能的解决方案:

1. 云函数权限问题

  • 问题描述: 云函数默认的权限可能不足以向数据库中添加数据。

  • 解决方案: 确保云函数有足够的权限来操作数据库。可以在云函数的 cloudfunctions 目录下的 package.json 中配置权限,或者在 Unicloud 控制台中为云函数设置权限。

    {
      "cloudfunction-config": {
        "permissions": {
          "openapi": ["database.add"]
        }
      }
    }

2. 云函数代码问题

  • 问题描述: 云函数中的代码可能存在错误,导致无法正确添加数据。

  • 解决方案: 检查云函数的代码,确保正确使用了 uniCloud.database() API 来添加数据。以下是一个简单的示例:

    exports.main = async (event, context) => {
      const db = uniCloud.database();
      const collection = db.collection('your_collection_name');
      const res = await collection.add({
        field1: 'value1',
        field2: 'value2'
      });
      return res;
    };

3. 数据库集合名称错误

  • 问题描述: 云函数中指定的集合名称可能与实际数据库中的集合名称不一致。
  • 解决方案: 确保云函数中指定的集合名称与 Unicloud 控制台中的集合名称完全一致。

4. 云函数未部署

  • 问题描述: 如果云函数未部署到云端,本地调用时可能会失败。
  • 解决方案: 确保云函数已经成功部署到云端。可以通过 HBuilderX 右键点击云函数文件夹,选择“上传并部署:云端安装依赖”来部署云函数。

5. 网络问题

  • 问题描述: 网络连接问题可能导致云函数无法正常执行。
  • 解决方案: 检查网络连接,确保设备能够正常访问 Unicloud 服务器。

6. 云函数日志查看

  • 问题描述: 云函数执行时可能会抛出错误,但错误信息没有直接显示在客户端。
  • 解决方案: 在 Unicloud 控制台中查看云函数的执行日志,查找可能的错误信息。可以通过控制台的“云函数日志”功能来查看详细的错误信息。

7. 云函数调用方式问题

  • 问题描述: 在客户端调用云函数时,可能没有正确处理返回结果。

  • 解决方案: 确保在客户端调用云函数时,正确处理了返回结果。以下是一个简单的示例:

    uniCloud.callFunction({
      name: 'your_cloud_function_name',
      data: {
        // 传递的参数
      },
      success(res) {
        console.log('云函数调用成功', res.result);
      },
      fail(err) {
        console.error('云函数调用失败', err);
      }
    });
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!