请问下,云函数中,不能对数据库进行操作吗?只能读取数据库?
发布于 7 年前 作者 mawei 9427 次浏览 来自 问答

请问下,云函数中,不能对数据库进行操作吗?只能读取数据库?

会报这种错误

[云函数] [login] 获取 openid 失败,请检查是否有部署云函数,错误信息: Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -504002, error message sum is not defined; at cloud.callFunction api

3 回复

自己回答下吧。

做了几种尝试,结论是可以做add操作的,只是对结论还有不少疑问,请大家解答下。

  1. “同步”操作add方法,结果,无法插入数据库。

  2. add方法使用异步,await。结果,可插入数据。





  3. 最后疑问在于,使用await是可以进行插入操作,但是不知道怎样才能在数据库操作之后,才进行数据返回。如在success里面进行return,前端哪里是会报错的。



对对  云函数操作数据库后不知道怎么return 自定义数据

1、有没有创建云函数啊

onGetOpenid: function() {
    // 调用云函数
    wx.cloud.callFunction({
      name: 'login',
      data: {},
      success: res => {
        console.log('[云函数] [login] user openid: ', res.result.openid)
        app.globalData.openid = res.result.openid
        wx.navigateTo({
          url: '../userConsole/userConsole',
        })
      },
      fail: err => {
        console.error('[云函数] [login] 调用失败', err)
        wx.navigateTo({
          url: '../deployFunctions/deployFunctions',
        })
      }
    })
  },

2、对云数据库数据可以增删改查操作的,首先你有没有创建counters这个集合啊

新增数据

onAdd: function () {
    const db = wx.cloud.database()
    db.collection('counters').add({
      data: {
        count: 3
      },
      success: res => {
        // 在返回结果中会包含新创建的记录的 _id
        console.log(res);
        this.setData({
          counterId: res._id,
          count: 3
        })
        wx.showToast({
          title: '新增记录成功',
        })
        console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
      },
      fail: err => {
        wx.showToast({
          icon: 'none',
          title: '新增记录失败'
        })
        console.error('[数据库] [新增记录] 失败:', err)
      }
    })
  },
回到顶部