微信小程序云开发常见错误总结.

本文介绍了在使用API访问云数据库时应注意的事项,包括避免在where条件中使用未定义变量,理解API操作的异步性质,以及如何避免代码包大小超限。针对异步操作,建议将数据库操作封装在回调函数内,确保数据同步。对于代码包优化,推荐将图片上传到云存储以减小代码体积,并讨论了图片链接的有效期问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

 一 使用API访问云数据库时where条件

二 使用API操作云数据库时是异步的

三 代码包大小超限.


 一 使用API访问云数据库时where条件

1.使用API访问云数据库时where条件里千万不能为underfind,否则会卡死.

 db.collection('user').where({
      _openid: openId
    })

如此时的openId一定不能是underfind. 

二 使用API操作云数据库时是异步的

2.使用API操作云数据库时是异步的,此时会将访问任务加入对列,等下方其他语句先执行然后再操作数据库.因此若在操作云数据库时的回调里setdata新数据,然后在操作数据库函数的下边并列调用API操作数据库,此时where不能是上方的新setdata的数据.因为此时回调函数还未执行.

 

正确写法:应将第二次操作数据库封装成函数,在第一次的回调函数里调用,或直接将代码写入第一次的回调里去执行.

      success(res) {
        if (res.confirm) {
          wx.showLoading({
            title: '数据加载中...',
          });
          const db = wx.cloud.database({ // 链接数据表
            env: ""
          });
          //收藏列表字符串处理
          var delete_id = that.data.list[e.currentTarget.dataset.index]._id
          var arrCollectionstr = that.options.collectionstr.split(',')
          var new_collectionstr = ''
          for (let index = 0; index < arrCollectionstr.length; index++) {
            if (arrCollectionstr[index] != delete_id) {
              new_collectionstr += arrCollectionstr[index]
              if (index != arrCollectionstr.length - 1) {
                new_collectionstr += ','
              }
            }
          }
          //修改user数据库
          db.collection('user').where({
            _openid: that.data.openid
          }).update({
            data: {
              Collection: new_collectionstr
            },
            success: function (res) {
              wx.showToast({
                title: "三合窗帘:修改成功,请您返回后重新加载", // 提示的内容
                icon: "none", // 图标,默认success
                image: "", // 自定义图标的本地路径,image 的优先级高于 icon
                duration: 3000, // 提示的延迟时间,默认1500
                mask: false, // 是否显示透明蒙层,防止触摸穿透
              })
              wx.hideLoading();
            }
          })
        }
      }

注:若该操作具有可重复性建议封装为函数,这样便于后期维护.且防止出现操作数据库而写出连续多层套娃情况.

三 代码包大小超限.

建议将除了体积特别小的图标直接放入代码包外,其他所有图片建议直接放入云储存,调用时src直接填写生成为http地址,这样能够有效减小代码包体积,另外需注意的是当图片放入云储存后生成的http地址有效期和权限有关,若是仅创建者可读,则有效期为一个月,若是所有人可读,有效期为永久.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷月半明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值