收藏
回答

小程序,云函数云端测试可以成功,本地代码调用无法修改,为什么?

云函数入口:

// 云函数入口文件

const cloud = require('wx-server-sdk')

cloud.init({

env: 'cloud1-6gxun1p3f1eef5e5',

traceUser: true

})

const db = cloud.database()

// 云函数入口函数

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

  try {

  return await db.collection("MY_BOOK").doc(event.item).update({

data : {

BOOKSTATE : event.readingstate , //这里前面的BOOKSTATE,是数据库中的字段,event.后面的readingstate,是调用时,构造data要提供的字段;在云端测试时,这里也要写成readingstate

REMARK : event.readremark  //同上

}

})

  } catch (e) {

  //TODO handle the exception

console.error(e)

  }

}

上述云函数已经部署,在云端测试,输入id和readingstate ,readremark  ,可以正确的更改数据库内容;


但是,如果在按钮中,采用如下函数调用,则无法更改:

updateBook() {

var db = wx.cloud.database()

db.collection("MY_BOOK").where({BOOKNAME: '红楼梦'}).get({

//先查找,目的是获取_id来定位数据记录

success : res => {

wx.callFunction({

name : 'update_book' , //需要调用的云函数名称

data : {

item : res.data[0]._id , //将查找的记录id传给云函数,更新这条记录

readingstate : '刚刚开始读',

readremark : '红楼梦是曹雪芹写的清朝的名著'

} ,

success : res_del => {

//删除成功后提示已删除

wx.showToast({

title : '已更新' ,

icon : 'none'

})

}

})

}

})

console.log('Button updateBook clicked!');

}

回答关注问题邀请回答
收藏

2 个回答

登录 后发表内容