收藏
回答

就这么一段代码,又不报错,怎么没插到数据库里?

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 客户端 wxeb08edc01dfc2dfa 2.2.5

云函数进行数据库操作,云测试通过,小程序调用云函数也没报错,为什么没有插入到数据??

- 控制台输出


{errMsg: "cloud.callFunction:ok", result: null}
errMsg
:
"cloud.callFunction:ok"
result
:
null
__proto__
:
Object




- 云函数

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database();
// 云函数入口函数
exports.main = async (event, context) => {
  console.log("parms----------",event)
   
   db.collection("user_info").add({
     data:{
       "user_id": event.userInfo.openId
     }
   }).then(res => {
     console.log(res)
   })
}


最后一次编辑于  2018-09-29
回答关注问题邀请回答
收藏

3 个回答

  • 邓坤力
    邓坤力
    2018-09-29

    是指使用云函数往数据库中插入数据没有成功吗?是否是在对应的环境查看的呢?(云函数中没有指定环境则默认使用默认环境的数据库即第一个创建的数据库)

    2018-09-29
    赞同
    回复 3
    • 大叔
      大叔
      2018-09-29

      对,没插入成功,也不报错,先不管哪个数据库,起码能插入数据库吧,,但是事实没有

      2018-09-29
      回复
    • i
      i
      2018-10-08

      我也发现这个问题,你解决了吗?

      2018-10-08
      回复
    • 大叔
      大叔
      2018-10-09回复i

      要加入await关键字才行

      2018-10-09
      1
      回复
  • 大叔
    大叔
    2018-09-29

    刚刚发现了,,一样的代码,居然要加个return 才能插入数据库?真的什么都没改,就加了个return而已,,如下

    // 云函数入口文件
    const cloud = require('wx-server-sdk')
    cloud.init()
    const db = cloud.database();
    // 云函数入口函数
    exports.main = async (event, context) => {
      console.log("parms----------",event)
        
       return db.collection("user_info").add({
         data:{
           "user_id": event.userInfo.openId
         }
       }).then(res => {
         console.log(res)
       })
    }

    这不科学啊,如果我有好几个数据库操作,岂不是要分成几个方法去执行?否则会被第一个操作数据的动作return掉,是bug吧?

    2018-09-29
    赞同 1
    回复 1
    • 邓坤力
      邓坤力
      2018-10-08

      add 是异步方法,不 return add 那么就是在异步方法执行前就返回了,不是 bug

      2018-10-08
      回复
  • 蜗牛先笙
    蜗牛先笙
    05-06

    遇到一模一样的问题,加return也没用,这是怎么回事呀

    05-06
    赞同
    回复