// 云函数模板
// 部署:在 cloud-functions/login 文件夹右击选择 “上传并部署”
const cloud = require('wx-server-sdk')
// 初始化 cloud
cloud.init({
// API 调用都保持和云函数当前所在环境一致
mst: cloud.DYNAMIC_CURRENT_ENV
})
/**
* 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端
*
* event 参数包含小程序端调用传入的 data
*
*/
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
let users = await db.collection('users').where({
openid: wxContext.OPENID
}).get() //查询用户信息
let newUser = await db.collection('users').orderBy('createTime', 'desc').get()
const userId = () => {
console.log('user', users.data.length, 'newuser', newUser.data.length)
return users.data.length == 0 && newUser.data.length == 0 ? 10000000 : newUser.data[0].userId + 1
}
if (users.data.length) {
// console.log('更新用户', newUser)
await db.collection('users').doc(users.data[0]._id).update({
data: {
userInfo: event.userInfo
}
})
let upUsers = await db.collection('users').doc(users.data[0]._id).get()
console.log('更新用户', upUsers)
return upUsers
} else {
let obj = Object.assign(event, { userId: userId() }, { openid: wxContext.OPENID }, { createTime: db.serverDate() })
let datas = await db.collection('users').add({ data: obj })
let newUser = await await db.collection('users').doc(datas._id).get()
console.log('新增用户', newUser )
return newUser
}
}
{
"name": "login",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"wx-server-sdk": "latest"
}
}