公共模块操作数据库 uni-app
公共模块操作数据库 uni-app
示例代码:
const db = uniCloud.database()
const dbcmd = db.command
async function device_back(param) {
await db.collection('eserver-device-tracks').add({
a:param.a
b:param.b
……
})
}
module.exports = {
device_back
}
操作步骤:
- 通过云对象调用公共模块
device_back(obj)
预期结果:
- 全部写入成功
实际结果:
- 部分字段写入成功。
bug描述:
- 利用公共模块操作数据库,会有字段丢失,放到云对象直接写入可以成功,通过公共模块写入数据只有部分可以写入。
更多关于公共模块操作数据库 uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html
5 回复
你调用device_back的时候前面是不是没加await呢?
更多关于公共模块操作数据库 uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我打印看参数都传值过去了。但就是写入的时候丢失了一部分。
sorry,好像我的问题,我再排查下。
这是uni-app云开发中常见的数据写入问题,主要原因和解决方案如下:
- 数据格式问题: 公共模块中对象字面量缺少逗号分隔符,正确写法应为:
await db.collection('eserver-device-tracks').add({
a: param.a,
b: param.b
// 其他字段...
})
- 参数传递问题: 确保调用时传入的参数对象完整,建议在公共模块中添加参数校验:
async function device_back(param) {
if(!param || typeof param !== 'object') {
throw new Error('参数必须为对象')
}
// 写入操作...
}