云函数是这么写的:
// 云函数入口文件
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,以前没什么问题,版本一更新就不行了,求解答,谢谢
这是由于你的app.js的环境变量没有配置
这个怎么弄,麻烦哪位大神给看看
还有这个发送订阅消息怎么显示调用失败和错误
我遇到过类似的问题。
无法直接创建并部署云函数。
必须在在云开发控制台建立同名的云函数后,才能上传。然后我把开发者工具从nightly版本换为更稳定的RC版本后,就可以创建上传了。
然后,我进一步发现,还是不能用。然后依据官方文档云调用一节 “首先云函数中需要使用版本号至少
0.4.0
的wx-server-sdk
,建议wx-server-sdk
始终保持最新,保证云函数目录下的package.json
的wx-server-sdk
字段为latest
,如本地安装依赖,请执行npm install --save wx-server-sdk@latest
。” 搜索安装node,对单独的云函数文件夹,执行命令,实现了本地安装依赖,并成功本地调试。但是线上调用还是失败。然后我又查到,在小程序miniprogram的文件夹内的app.js的wx.cloud.init内添加字段env:xxxx(环境ID,不是名字) 来指定你要运行miniprogram的环境。然后再运行就成功了。如果不指定的话,会默认在第一次创建的环境里运行,官方如是说。
谢谢你,我去试试。。实在不行就不用云函数了
环境 加上了,没管用。
错误提示是找不到这个云函数,是不是没有上传部署成功或者部署到另外一个环境去了?
我到云开发端看了,确实是并部署到了正确的位置,现在又报了一个新的错误
我试过在开发工具和云函数初始化云环境ID都不行,不知道是什么错误