云函数测试成功,前端调用成功却返回空,数据库也有数据,求解
- 当前 Bug 的表现(可附上截图) [图片][图片] [图片] - 预期表现[图片] - 复现路径
。 - 提供一个最简复现 Demo [代码]var[代码] [代码]app = getApp()[代码][代码]Page({[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 页面的初始数据[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]movieDetail: {[代码][代码] [代码][代码]mid: 1,[代码][代码] [代码][代码]title: [代码][代码]"绿皮书"[代码][代码],[代码][代码] [代码][代码]movieClass: [代码][代码]"剧情/喜剧/传记"[代码][代码],[代码][代码] [代码][代码]actor: [代码][代码]"维果·莫里森,马赫莎拉·阿里"[代码][代码],[代码][代码] [代码][代码]score: [代码][代码]"9.6分"[代码][代码],[代码][代码] [代码][代码]onShowTime: [代码][代码]"2019-2-26"[代码][代码],[代码][代码] [代码][代码]country: [代码][代码]"美国"[代码][代码],[代码][代码] [代码][代码]introduce: [代码][代码]" 一名黑人钢琴家,为前往种族歧视严重的南方巡演,找了一个粗暴的白人混混做司机。在一路开车南下的过程中,截然不同的两人矛盾不断,引发了不少争吵和笑料。但又在彼此最需要的时候,一起共渡难关。行程临近结束,两人也慢慢放下了偏见......绿皮书,是一本专为黑人而设的旅行指南, 标注了各城市中允许黑人进入的旅店、 餐馆。 电影由真实故事改编。 "[代码][代码],[代码][代码] [代码][代码]willingToWatch: [代码][代码]true[代码][代码],[代码][代码] [代码][代码]scored: [代码][代码]false[代码][代码],[代码][代码] [代码][代码]},[代码][代码] [代码][代码]willingToWatch: [代码][代码]false[代码][代码],[代码][代码] [代码][代码]scored: [代码][代码]false[代码][代码],[代码][代码] [代码][代码]isFold: [代码][代码]true[代码][代码],[代码][代码] [代码][代码]starPath: [代码][代码]'../../images/score.png'[代码][代码],[代码][代码] [代码][代码]staredPath: [代码][代码]'../../images/scored.png'[代码][代码],[代码] [代码] [代码][代码]actor: [{[代码][代码] [代码][代码]profile: [代码][代码]"../../images/actor1.webp"[代码][代码],[代码][代码] [代码][代码]name: [代码][代码]"彼得·法雷里"[代码][代码],[代码][代码] [代码][代码]role: [代码][代码]"导演"[代码][代码] [代码][代码]},[代码][代码] [代码][代码]{[代码][代码] [代码][代码]profile: [代码][代码]"../../images/actor2.webp"[代码][代码],[代码][代码] [代码][代码]name: [代码][代码]"维果·莫腾森"[代码][代码],[代码][代码] [代码][代码]role: [代码][代码]"托尼·利普"[代码][代码] [代码][代码]},[代码][代码] [代码][代码]{[代码][代码] [代码][代码]profile: [代码][代码]"../../images/actor3.webp"[代码][代码],[代码][代码] [代码][代码]name: [代码][代码]"马赫沙拉·阿里"[代码][代码],[代码][代码] [代码][代码]role: [代码][代码]"唐·雪利"[代码][代码] [代码][代码]},[代码][代码] [代码][代码]{[代码][代码] [代码][代码]profile: [代码][代码]"../../images/actor4.webp"[代码][代码],[代码][代码] [代码][代码]name: [代码][代码]"琳达·卡德里尼"[代码][代码],[代码][代码] [代码][代码]role: [代码][代码]"德洛瑞丝"[代码][代码] [代码][代码]}[代码][代码] [代码][代码]],[代码][代码] [代码][代码]comments: [{[代码][代码] [代码][代码]uid: [代码][代码]'123512313'[代码][代码],[代码][代码] [代码][代码]userName: [代码][代码]'LWRNL'[代码][代码],[代码][代码] [代码][代码]userProfile: [代码][代码]"../../images/user.png"[代码][代码],[代码][代码] [代码][代码]userComment: [代码][代码]"真·青春成长题材,教师视觉展现上世纪80年代拘谨的校园教育氛围,幽默不俗、叛逆放纵,残酷真实,笑中伤感,唯有以梦落幕。每个人都想做最完美的自己,可惜追求完美需要承受巨大压力,当醒悟后才懂得只需找准自己的。"[代码][代码],[代码][代码] [代码][代码]commentDate: [代码][代码]"4天前"[代码][代码],[代码][代码] [代码][代码]score: 5[代码] [代码] [代码][代码]},[代码][代码] [代码][代码]{[代码][代码] [代码][代码]uid: [代码][代码]'123512313'[代码][代码],[代码][代码] [代码][代码]userName: [代码][代码]'LWRNL'[代码][代码],[代码][代码] [代码][代码]userProfile: [代码][代码]"../../images/user.png"[代码][代码],[代码][代码] [代码][代码]userComment: [代码][代码]"真·青春成长题材,教师视觉展现上世纪80年代拘谨的校园教育氛围,幽默不俗、叛逆放纵,残酷真实,笑中伤感,唯有以梦落幕。每个人都想做最完美的自己,可惜追求完美需要承受巨大压力,当醒悟后才懂得只需找准自己的。"[代码][代码],[代码][代码] [代码][代码]commentDate: [代码][代码]"4天前"[代码][代码],[代码][代码] [代码][代码]score: 4[代码] [代码] [代码][代码]},[代码][代码] [代码][代码]{[代码][代码] [代码][代码]uid: [代码][代码]'123512313'[代码][代码],[代码][代码] [代码][代码]userName: [代码][代码]'LWRNL'[代码][代码],[代码][代码] [代码][代码]userProfile: [代码][代码]"../../images/user.png"[代码][代码],[代码][代码] [代码][代码]userComment: [代码][代码]"真·青春成长题材,教师视觉展现上世纪80年代拘谨的校园教育氛围,幽默不俗、叛逆放纵,残酷真实,笑中伤感,唯有以梦落幕。每个人都想做最完美的自己,可惜追求完美需要承受巨大压力,当醒悟后才懂得只需找准自己的。"[代码][代码],[代码][代码] [代码][代码]commentDate: [代码][代码]"4天前"[代码][代码],[代码][代码] [代码][代码]score: 2[代码] [代码] [代码][代码]},[代码][代码] [代码][代码]{[代码][代码] [代码][代码]uid: [代码][代码]'123512313'[代码][代码],[代码][代码] [代码][代码]userName: [代码][代码]'LWRNL'[代码][代码],[代码][代码] [代码][代码]userProfile: [代码][代码]"../../images/user.png"[代码][代码],[代码][代码] [代码][代码]userComment: [代码][代码]"真·青春成长题材,教师视觉展现上世纪80年代拘谨的校园教育氛围,幽默不俗、叛逆放纵,残酷真实,笑中伤感,唯有以梦落幕。每个人都想做最完美的自己,可惜追求完美需要承受巨大压力,当醒悟后才懂得只需找准自己的。"[代码][代码],[代码][代码] [代码][代码]commentDate: [代码][代码]"4天前"[代码][代码],[代码][代码] [代码][代码]score: 5[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]][代码] [代码] [代码][代码]},[代码][代码] [代码][代码]showAll: [代码][代码]function[代码][代码](e) {[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]isFold: ![代码][代码]this[代码][代码].data.isFold,[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]willToWatch: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]willingToWatch: [代码][代码]true[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]scored: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]wx.navigateTo({[代码][代码] [代码][代码]url: [代码][代码]"../evaluate/evaluate?mid="[代码] [代码]+ [代码][代码]this[代码][代码].data.mid[代码][代码] [代码][代码]})[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]scored: [代码][代码]true[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]shortcomment: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]wx.navigateTo({[代码][代码] [代码][代码]url: [代码][代码]"../evaluate/evaluate?mid="[代码] [代码]+ [代码][代码]this[代码][代码].data.mid[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码][代码] [代码][代码]/**[代码][代码] [代码][代码]* 生命周期函数--监听页面加载[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]onLoad: [代码][代码]function[代码][代码](options) {[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]mid: options.mid,[代码][代码] [代码][代码]uid: app.globalData.openid,[代码][代码] [代码][代码]})[代码][代码] [代码][代码]console.log([代码][代码]this[代码][代码].data.mid + [代码][代码]'..'[代码] [代码]+ [代码][代码]this[代码][代码].data.uid)[代码][代码] [代码][代码]},[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 生命周期函数--监听页面初次渲染完成[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]onReady: [代码][代码]function[代码][代码](e) {[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 生命周期函数--监听页面显示[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]onShow: [代码][代码]function[代码][代码]() {[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]scored: [代码][代码]this[代码][代码].data.movieDetail.scored,[代码][代码] [代码][代码]willingToWatch: [代码][代码]this[代码][代码].data.movieDetail.willingToWatch,[代码][代码] [代码][代码]})[代码] [代码] [代码][代码]wx.cloud.callFunction({[代码][代码] [代码][代码]name: [代码][代码]'getMovieDetails'[代码][代码],[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]uid: [代码][代码]this[代码][代码].data.uid,[代码][代码] [代码][代码]mid: [代码][代码]this[代码][代码].data.mid[代码][代码] [代码][代码]},[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]console.log([代码][代码]'收到结果: '[代码][代码], res.result.movieDetails)[代码] [代码] [代码][代码]this[代码][代码].setData({[代码] [代码] [代码][代码]})[代码] [代码] [代码][代码]},[代码][代码] [代码][代码]fail: err => {[代码][代码] [代码][代码]console.error([代码][代码]'[云函数] [getMyOrder] 调用失败'[代码][代码], err)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 生命周期函数--监听页面隐藏[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]onHide: [代码][代码]function[代码][代码]() {[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 生命周期函数--监听页面卸载[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]onUnload: [代码][代码]function[代码][代码]() {[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 页面相关事件处理函数--监听用户下拉动作[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]onPullDownRefresh: [代码][代码]function[代码][代码]() {[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 页面上拉触底事件的处理函数[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]onReachBottom: [代码][代码]function[代码][代码]() {[代码] [代码] [代码][代码]},[代码] [代码] [代码][代码]/**[代码][代码] [代码][代码]* 用户点击右上角分享[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]onShareAppMessage: [代码][代码]function[代码][代码]() {[代码] [代码] [代码][代码]}[代码][代码]})[代码][代码][代码]云函数: [代码]const cloud = require([代码][代码]'wx-server-sdk'[代码][代码])[代码][代码]cloud.init()[代码][代码]const db = cloud.database()[代码][代码]const movieDetail = db.collection([代码][代码]'movieDetails'[代码][代码])[代码][代码]const willing = db.collection([代码][代码]'willings'[代码][代码])[代码][代码]const score = db.collection([代码][代码]'movieEvaluate'[代码][代码])[代码][代码]exports.main = async (event, context) =>{[代码][代码] [代码][代码]try[代码][代码]{[代码][代码] [代码][代码]//查询willing表中是否有对应数据,有则willingToWatch改为true,反之,willingToWatch改为false[代码][代码] [代码][代码]const exist1 = await willing.where({[代码][代码] [代码][代码]mid: event.mid,[代码][代码] [代码][代码]open_id: event.uid[代码][代码] [代码][代码]}).count()[代码][代码] [代码][代码]const total1 = exist1.total[代码][代码] [代码][代码]if[代码] [代码](total1 === 0) {[代码][代码] [代码][代码]await movieDetail.where({[代码][代码] [代码][代码]mid: event.mid[代码][代码] [代码][代码]}).limit(1)[代码][代码] [代码][代码].update({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]willingToWatch: [代码][代码]false[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]await movieDetail.where({[代码][代码] [代码][代码]mid: event.mid[代码][代码] [代码][代码]}).limit(1)[代码][代码] [代码][代码].update({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]willingToWatch: [代码][代码]true[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]////查询movieEvaluate表中是否有对应数据,有则scored改为true,反之,scored改为false[代码][代码] [代码][代码]const exist2 = await score.where({[代码][代码] [代码][代码]mid: event.mid,[代码][代码] [代码][代码]open_id: event.uid[代码][代码] [代码][代码]}).count()[代码][代码] [代码][代码]const total2 = exist2.total[代码][代码] [代码][代码]if[代码] [代码](total2 === 0) {[代码][代码] [代码][代码]await movieDetail.where({[代码][代码] [代码][代码]mid: event.mid[代码][代码] [代码][代码]}).limit(1)[代码][代码] [代码][代码].update({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]scored: [代码][代码]false[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]await movieDetail.where({[代码][代码] [代码][代码]mid: event.mid[代码][代码] [代码][代码]}).limit(1)[代码][代码] [代码][代码].update({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]scored: [代码][代码]true[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码]catch[代码][代码](e){[代码][代码] [代码][代码]console.error(e)[代码][代码] [代码][代码]}[代码][代码] [代码][代码]//返回查询数据[代码][代码] [代码][代码]return[代码] [代码]{[代码][代码] [代码][代码]movieDetails: await movieDetail.where({[代码][代码] [代码][代码]mid: event.mid[代码][代码] [代码][代码]}).limit(1).get()[代码][代码] [代码][代码]}[代码][代码]}[代码]