收藏
回答

云函数不能修改数据库?

数据库里存了菜品名称价格等数据,页面调用云函数保存修改,控制台输出调用成功但是数据一直没变

哪位大神能看下是哪里的问题

wxml代码:

<button bindtap="saveData">保存</button>

js代码:

saveData: function (e){
    var _id = this.data._id
    if(_id){
      wx.cloud.callFunction({
        name: 'databaseutil',
        data: {
          action: 'updateData',
          collectionname: 'good',
          _id: _id,
          dbdata: {
            goodname: this.data.goodname,
            goodtype: this.data.goodtype,
            maxcount: this.data.maxcount,
            price: this.data.price,
            priceunit: this.data.priceunit,
            unit: this.data.unit,
            remark: this.data.remark
          },
          options: {
            //success: console.log('修改成功'),
            fail: console.error
          }
        }
      })
        .then(res => {
          // this.setData({
          //   meatlist: res.result.data
          // })
        })
        .catch(console.error)
    }

云函数index.js:

function updateData(event) {
  const cloud = require('wx-server-sdk')
  cloud.init({
    env: cloud.DYNAMIC_CURRENT_ENV
  })
  const db = cloud.database()
  const _ = db.command
  exports.main = async (event, context) => {
    try {
      return await db.collection(event.collectionname).where({
        _id: event._id
      })
        .update({
          data: event.dbdata,
        })
    } catch (e) {
      console.error(e)
    }
  }
}

云函数调试控制台:

提示成功了,但是数据库里的数据并没修改,查了一下午也没查出哪有毛病啊

想要修改的数据:



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

2 个回答

  • 。
    2020-02-27

    感觉是云函数里面执行有问题吧,没有什么日志显示吗?

    2020-02-27
    有用
    回复 1
    • 你是魔鬼吗
      你是魔鬼吗
      2020-02-27
      调试的时候main函数直接就执行过了,里面的断不到
      2020-02-27
      回复
  • Mr.Zhao
    Mr.Zhao
    2020-02-27

    2020-02-27
    有用
    回复 3
    • 你是魔鬼吗
      你是魔鬼吗
      2020-02-27
      2020-02-27
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-02-27回复你是魔鬼吗
      2020-02-27
      回复
    • 你是魔鬼吗
      你是魔鬼吗
      2020-02-27回复Mr.Zhao
      解决了,谢谢,应该是我在云函数index.js里2层都执行了exports.main,把内层的去掉就好了,万分感谢
      2020-02-27
      回复
登录 后发表内容
问题标签