云函数判断用户名和密码,并添加到用户表,最后返回数据库操作结果和openid?
测试:函数调用成功,添加数据库代码没有执行,返回NULL。
const cloud = require('wx-server-sdk')
// 初始化 cloud
cloud.init({
// API 调用都保持和云函数当前所在环境一致
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
const loguser = "Ts51102186" //测试校验用
const logpwd = "Ts51102186" //测试校验用
/** * 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端 *
* event 参数包含小程序端调用传入的 data* */
exports.main = async (event, context) => {
if (event.loguser == loguser && event.logpwc == logpwd) { //校验用户名密码
const wxContext = cloud.getWXContext()
//添加userInfo数据开始
let userInfo = event.userInfo
let _id = wxContext.OPENID
const _ = db.command
return await db.collection('UserInfo').doc(_id).update({ //用户已存在更新
data: {
style: _.set({
userInfo: userInfo
})
},
success: function (res) {
console.log('更新成功', res.data)
return {wxContext } //返回openid
}
}).catch(err => {
console.log('更新错误', err)
//用户不存在会抛出异常,在异常中处理新增
db.collection('UserInfo').add({
data: {
_id: wxContext.OPENID,
userInfo: userInfo
},
success: function (res) {
console.log('添加成功', res.data)
return{
wxContext //返回openid
}
},
Error: (err => {
console.log('添加失败', err)
})
})
})
}
}