uni-app [unicloud]创建一个云函数在uts里调用 显示“函数不存在或者没有生效的版本”

发布于 1周前 作者 vueper 来自 Uni-App

uni-app [unicloud]创建一个云函数在uts里调用 显示“函数不存在或者没有生效的版本”

连接的是本地云函数,在unicloud创建了一个叫ali-auth-getMobile的函数名的云函数,然后在uts里调用unicloud.callFunction({name:‘ali-auth-getMobile’})显示报错。

报错信息: errCode: “50004”, errMsg: “函数不存在或者没有生效的版本”

调用创建项目自带的univerfy云函数也是这样的报错。

1 回复

在使用uni-app的unicloud功能时,如果在尝试调用一个云函数时遇到了“函数不存在或者没有生效的版本”的错误,这通常意味着云函数尚未正确创建、部署或配置。下面我将提供一个创建和调用云函数的示例,帮助你排查和解决问题。

步骤 1: 创建云函数

首先,确保你已经在uniCloud项目中创建了云函数。以下是一个简单的云函数示例,该函数将返回一个字符串“Hello, World!”。

  1. uniCloud/cloudfunctions目录下创建一个新的文件夹,例如helloWorld
  2. helloWorld文件夹中创建index.js文件,内容如下:
'use strict';
exports.main = async (event, context) => {
  return {
    message: 'Hello, World!'
  };
};
  1. 确保在uniCloud/cloudfunctions/helloWorld目录下有一个package.json文件,它通常在你首次部署云函数时自动生成。如果没有,可以手动创建一个简单的:
{
  "name": "helloWorld",
  "version": "1.0.0",
  "main": "index.js",
  "dependencies": {}
}

步骤 2: 部署云函数

在HBuilderX中,右键点击uniCloud目录,选择“上传云函数”。确保上传成功后,你可以在云控制台看到该函数。

步骤 3: 调用云函数

在uni-app的前端代码中,你可以使用以下代码来调用这个云函数:

uniCloud.callFunction({
  name: 'helloWorld',
  success: function (res) {
    console.log('云函数调用成功:', res.result);
  },
  fail: function (err) {
    console.error('云函数调用失败:', err);
  }
});

排查问题

  1. 检查云函数名称:确保你在调用云函数时使用的名称与你在云控制台中创建的云函数名称完全一致。
  2. 检查部署状态:在云控制台中检查云函数的部署状态,确保函数已经成功部署并有生效的版本。
  3. 检查权限配置:确保你的云函数有正确的权限配置,允许从你的前端应用进行调用。

如果以上步骤都正确无误,但问题仍然存在,你可能需要检查云服务的日志,以获取更详细的错误信息。在HBuilderX的云控制台中,你可以找到日志查看功能,它可能会给出更具体的错误原因。

回到顶部