关于云函数调用失败问题
发布于 6 年前 作者 fanyong 4882 次浏览 来自 问答

云函数是这么写的:

// 云函数入口文件

const cloud = require(‘wx-server-sdk’)

const db = cloud.database();

const _ = db.command;

cloud.init()

/**

* 此函数用于向云数据库插入用户每周记录的体重情况

* 输入:插入时间、体重、身高

* 唯一标识:用户的openid

*/

// 云函数入口函数

exports.main = async (event, context) => {

const wxContext = cloud.getWXContext();

const time = event.time;

const openid = wxContext.OPENID;

const weight = event.weight;

const height = event.height;

const res = await db.collection(“weight_record”).add({

data: {

_openid: openid,

time: time,

weight: weight,

height: height

}

});

console.log(openid);

console.log(height);

console.log(weight);

return {

event,

openid: wxContext.OPENID,

appid: wxContext.APPID,

unionid: wxContext.UNIONID,

}

}

//调用云函数

也在app初始化时配置好了云环境id,以前没什么问题,版本一更新就不行了,求解答,谢谢

2 回复

我遇到过类似的问题。
 无法直接创建并部署云函数。
     必须在在云开发控制台建立同名的云函数后,才能上传。然后我把开发者工具从nightly版本换为更稳定的RC版本后,就可以创建上传了。
       然后,我进一步发现,还是不能用。然后依据官方文档云调用一节 “首先云函数中需要使用版本号至少 0.4.0wx-server-sdk,建议 wx-server-sdk 始终保持最新,保证云函数目录下的 package.jsonwx-server-sdk 字段为 latest,如本地安装依赖,请执行 npm install --save wx-server-sdk@latest。” 搜索安装node,对单独的云函数文件夹,执行命令,实现了本地安装依赖,并成功本地调试。但是线上调用还是失败。
      然后我又查到,在小程序miniprogram的文件夹内的app.js的wx.cloud.init内添加字段env:xxxx(环境ID,不是名字) 来指定你要运行miniprogram的环境。然后再运行就成功了。如果不指定的话,会默认在第一次创建的环境里运行,官方如是说。

错误提示是找不到这个云函数,是不是没有上传部署成功或者部署到另外一个环境去了?

回到顶部