云函数进行数据库操作,云测试通过,小程序调用云函数也没报错,为什么没有插入到数据??
- 控制台输出
{errMsg: "cloud.callFunction:ok" , result: null } errMsg : "cloud.callFunction:ok" result : null __proto__ : Object |
- 云函数
// 云函数入口文件 const cloud = require( 'wx-server-sdk' ) cloud.init() const db = cloud.database(); // 云函数入口函数 exports.main = async (event, context) => { console.log( "parms----------" ,event) db.collection( "user_info" ).add({ data:{ "user_id" : event.userInfo.openId } }).then(res => { console.log(res) }) } |
是指使用云函数往数据库中插入数据没有成功吗?是否是在对应的环境查看的呢?(云函数中没有指定环境则默认使用默认环境的数据库即第一个创建的数据库)
对,没插入成功,也不报错,先不管哪个数据库,起码能插入数据库吧,,但是事实没有
我也发现这个问题,你解决了吗?
要加入await关键字才行
刚刚发现了,,一样的代码,居然要加个return 才能插入数据库?真的什么都没改,就加了个return而已,,如下
// 云函数入口文件
const cloud = require(
'wx-server-sdk'
)
cloud.init()
const db = cloud.database();
// 云函数入口函数
exports.main = async (event, context) => {
console.log(
"parms----------"
,event)
return
db.collection(
"user_info"
).add({
data:{
"user_id"
: event.userInfo.openId
}
}).then(res => {
console.log(res)
})
}
这不科学啊,如果我有好几个数据库操作,岂不是要分成几个方法去执行?否则会被第一个操作数据的动作return掉,是bug吧?
add 是异步方法,不 return add 那么就是在异步方法执行前就返回了,不是 bug
遇到一模一样的问题,加return也没用,这是怎么回事呀