收藏
回答

请问云函数中调用数据库查询加插入为什么一直报错?谢谢

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 Bug 客户端 wx87c393a34109b2b2 2.2.5

- 当前 Bug 的表现(可附上截图)


 在云开发控制台测试云函数时,错误提示如下:

测试结果:失败

  • 返回结果:

    {"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"Unexpected identifier"}


  • 摘要

  • 请求ID:4e47e746-1429-11e9-8070-525400770114

    运行时间:2.581ms

    计费时间:100ms

    运行内存:0.125MB

  • 日志

  • START RequestId: 4e47e746-1429-11e9-8070-525400770114

    Event RequestId: 4e47e746-1429-11e9-8070-525400770114Event:{

      "key1": "test value 1",

      "key2": "test value 2",

      "userInfo": {

        "appId": "wx87c393a34109b2b2",

        "openId": "oaoLb4qz0R8STBj6ipGlHkfNCO2Q"

      }

    }


    END RequestId: 4e47e746-1429-11e9-8070-525400770114

    Report RequestId: 4e47e746-1429-11e9-8070-525400770114 Duration:2.581ms Memory:256MB MaxMemoryUsed:0.125MB

    - 复现路径

    调用云函数时出错


    - 提供代码片段

    // 云函数入口文件
    const cloud = require('wx-server-sdk')
     
    cloud.init()
    const db = cloud.database()
     
    // 云函数入口函数
    exports.main = async (event, context) => {
      var table_name = event.table_name
       
      try {
        var isExisted = false
        if(table_name == "bookinfo") {
          db.collection(table_name).where({
            isbn: event.isbn
          }).get({
            success(res) {
              if(res.data.length == 0) {
                return await db.collection(table_name).add({
                  data: {
                    isbn: event.isbn,
                    title: event.title,
                    author: event.author
                  }
                });
              }
            }
          })     
        }
      catch (e) {
        console.error(e)
      }
    }


    最后一次编辑于  2019-01-10
    回答关注问题邀请回答
    收藏

    2 个回答

    • 半寸灰
      半寸灰
      2019-01-10

       


      // 云函数入口函数


      exports.main = async (event, context) => {


        var table_name = event.table_name


         


        try {


          var isExisted = false


          if(table_name == "bookinfo") {


         var  res=  await  db.collection(table_name).where({


              isbn: event.isbn


            }).get()   





        if(res.data.length == 0) {




                  return await db.collection(table_name).add({


                    data: {


                      isbn: event.isbn,


                      title: event.title,


                      author: event.author


                    }


                  });






                }









        


          }


        } catch (e) {


          console.error(e)


        }


      }


      2019-01-10
      有用 1
      回复 1
      • weeོ
        weeོ
        2019-01-11

        好用,感谢感谢

        2019-01-11
        回复
    • 悟空
      悟空
      2019-01-10

      服务端只支持Promise风格,不支持success回调

      2019-01-10
      有用
      回复 1
      • weeོ
        weeོ
        2019-01-11

        不知道这个要求,还以为跟小程序端一样呢;已解决,感谢感谢

        2019-01-11
        回复
    登录 后发表内容