问答详情
源自:4-5 电影评价

评论+评分=>可以上传到云数据库 图片单独=>可以上传到云存储 评论+评分+图片=>可以上传图片到云存储但是数据库没有任何记录

在线请求帮助

提问者:yummywx 2019-07-12 10:30

个回答

  • qq_Shinesobrigh_0
    2019-07-27 14:47:38

    我也是,图片的fileIds上传数据库没有,云存储那边是有图片的。

    const db = wx.cloud.database(); // 初始化数据库

    // pages/comment/comment.js

    Page({


    /**

      * 页面的初始数据

      */

    data: {

    detail: {},

    movieId: -1,

    content: "",

    score: 0,

    images: [],

    pic: []

    },

    //评价

    onContentChange: function(event) {

    this.setData({

    content: event.detail

    })

    },

    //评分

    onScoreChange: function (event) {

    this.setData({

    score: event.detail

    })

    },

    //上传图片

    uploadImg: function() {

    wx.chooseImage({

    count: 1,

    sizeType: ['original', 'compressed'],

    sourceType: ['album', 'camera'],

    success: res => {

    // tempFilePath可以作为img标签的src属性显示图片

    const tempFilePaths = res.tempFilePaths;

    this.setData({

    images: this.data.images.concat(tempFilePaths)

    })

    }

    })

    },


    submit:function() {

    wx.showLoading({

    title: '评论中',

    });

    let promiseArr = [];

    for(let i = 0;i< this.data.images.length;i++) {

    promiseArr.push(new Promise((reslove, reject) => {

    let item = this.data.images[i];

    let suffix = /\.\w+$/.exec(item)[0];//返回文件拓展名

    wx.cloud.uploadFile({

    cloudPath: new Date().getTime() + suffix, // 上传至云端的路径

    filePath: this.data.images[i], // 小程序临时文件路径

    success: res => {

    // 返回文件 ID

    console.log(res.fileID)

    this.setData({

    pic: this.data.pic.concat(res.fileID),

    });

    console.log(this.data.pic);

    reslove();

    },

    fail: console.error,

    })

    })

    )

    };


    Promise.all(promiseArr).then(res => {

    // 插入数据

    db.collection('comment').add({

    data: {

    content: this.data.content,

    score: this.data.score,

    movieid: this.data.movieId,

    pic: this.data.pic

    }

    }).then(res => {

    wx.hideLoading();

    wx.showToast({

    title: '评价成功',

    })

    }).catch(err => {

    wx.hideLoading();

    wx.showToast({

    title: '评价失败',

    })

    })


    });

    },


    /**

      * 生命周期函数--监听页面加载

      */

    onLoad: function (options) {

    console.log(options);

    this.setData({

    movieId: options.movieid

    });

    wx.showLoading({

    title: '加载中',

    })

    //console.log(options);

    wx.cloud.callFunction({

    name: 'getDetail',

    data: {

    movieid: options.movieid

    }

    }).then(res => {

    // console.log(res);

    this.setData({

    detail: JSON.parse(res.result)

    });

    wx.hideLoading();

    }).catch(err => {

    console.error(err);

    wx.hideLoading();

    });

    },


    /**

      * 生命周期函数--监听页面初次渲染完成

      */

    onReady: function () {


    },


    /**

      * 生命周期函数--监听页面显示

      */

    onShow: function () {


    },


    /**

      * 生命周期函数--监听页面隐藏

      */

    onHide: function () {


    },


    /**

      * 生命周期函数--监听页面卸载

      */

    onUnload: function () {


    },


    /**

      * 页面相关事件处理函数--监听用户下拉动作

      */

    onPullDownRefresh: function () {


    },


    /**

      * 页面上拉触底事件的处理函数

      */

    onReachBottom: function () {


    },


    /**

      * 用户点击右上角分享

      */

    onShareAppMessage: function () {


    }

    })


  • 谢成
    2019-07-13 08:34:44

    评论分为两步,第一步是上传图片到云存储,第二部是上传数据到云数据库。请分别检查两个步骤,并查看调试器控制台中是否有错误信息。把错误截图出来能够更快的定位到问题。