微信小程序云开发常见错误总结.
目录
一 使用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地址有效期和权限有关,若是仅创建者可读,则有效期为一个月,若是所有人可读,有效期为永久.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)