要求:查询用户是否存在,不存在则增加到数据库
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db = cloud.database();
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
const OPENID = wxContext.OPENID
event.userInfo.openid = wxContext.OPENID
event.userInfo.isadd = false
const admin = await db.collection('username').where({ _openid: OPENID }).get()
if (admin.data.length == 0) {
await db.collection('username').add({
userinfo:'test'
})
}
return event.userInfo
})
能执行到if里面但是增加数据库的动作就不可以了,
在if里面的 增加数据库 前面加上 await 也不可以
郁闷了,不能同时操作2次数据库??
还是有什么底层原理我不清楚??
谁能帮忙看看?
我在js里边写也是这样,第一次访问成功,第二次操作就失败了.
都改成await就行了。云函数里不能有任何异步。
const admin = await db.collection('username').where({ _openid: OPENID }).get()
if (admin.data.length == 0) {
await db.collection('username').add({
userinfo:'test'
})
}
是这样写吗?? 这样写了后报错
WAService.js:1 Uncaught (in promise) Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID 844e30fd-47d8-11ea-8ff6-525400090c2c, cloud function service error code -504002, error message errCode: -1 unknown error | errMsg: parameter.data should be object instead of undefined;