请问下,云函数中,不能对数据库进行操作吗?只能读取数据库?
会报这种错误
[云函数] [login] 获取 openid 失败,请检查是否有部署云函数,错误信息: Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -504002, error message sum is not defined; at cloud.callFunction api
对对 云函数操作数据库后不知道怎么return 自定义数据
自己回答下吧。
做了几种尝试,结论是可以做add操作的,只是对结论还有不少疑问,请大家解答下。
“同步”操作add方法,结果,无法插入数据库。
add方法使用异步,await。结果,可插入数据。
最后疑问在于,使用await是可以进行插入操作,但是不知道怎样才能在数据库操作之后,才进行数据返回。如在success里面进行return,前端哪里是会报错的。
1、有没有创建云函数啊
onGetOpenid:
function
() {
// 调用云函数
wx.cloud.callFunction({
name:
'login'
,
data: {},
success: res => {
console.log(
'[云函数] [login] user openid: '
, res.result.openid)
app.globalData.openid = res.result.openid
wx.navigateTo({
url:
'../userConsole/userConsole'
,
})
},
fail: err => {
console.error(
'[云函数] [login] 调用失败'
, err)
wx.navigateTo({
url:
'../deployFunctions/deployFunctions'
,
})
}
})
},
2、对云数据库数据可以增删改查操作的,首先你有没有创建counters这个集合啊
新增数据
onAdd:
function
() {
const
db = wx.cloud.database()
db.collection(
'counters'
).add({
data: {
count:
3
},
success: res => {
// 在返回结果中会包含新创建的记录的 _id
console.log(res);
this
.setData({
counterId: res._id,
count:
3
})
wx.showToast({
title:
'新增记录成功'
,
})
console.log(
'[数据库] [新增记录] 成功,记录 _id: '
, res._id)
},
fail: err => {
wx.showToast({
icon:
'none'
,
title:
'新增记录失败'
})
console.error(
'[数据库] [新增记录] 失败:'
, err)
}
})
},
云函数是创建了,我是用了云开发项目模板作为学习的。
我是看到这里,提出了疑问。
另外,您贴的回复,是小程序前端操作数据库的,这个都没问题。