1. // 云函数模板
    2. // 部署:在 cloud-functions/login 文件夹右击选择 “上传并部署”
    3. const cloud = require('wx-server-sdk')
    4. // 初始化 cloud
    5. cloud.init({
    6. // API 调用都保持和云函数当前所在环境一致
    7. mst: cloud.DYNAMIC_CURRENT_ENV
    8. })
    9. /**
    10. * 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端
    11. *
    12. * event 参数包含小程序端调用传入的 data
    13. *
    14. */
    15. const db = cloud.database()
    16. const _ = db.command
    17. exports.main = async (event, context) => {
    18. const wxContext = cloud.getWXContext()
    19. let users = await db.collection('users').where({
    20. openid: wxContext.OPENID
    21. }).get() //查询用户信息
    22. let newUser = await db.collection('users').orderBy('createTime', 'desc').get()
    23. const userId = () => {
    24. console.log('user', users.data.length, 'newuser', newUser.data.length)
    25. return users.data.length == 0 && newUser.data.length == 0 ? 10000000 : newUser.data[0].userId + 1
    26. }
    27. if (users.data.length) {
    28. // console.log('更新用户', newUser)
    29. await db.collection('users').doc(users.data[0]._id).update({
    30. data: {
    31. userInfo: event.userInfo
    32. }
    33. })
    34. let upUsers = await db.collection('users').doc(users.data[0]._id).get()
    35. console.log('更新用户', upUsers)
    36. return upUsers
    37. } else {
    38. let obj = Object.assign(event, { userId: userId() }, { openid: wxContext.OPENID }, { createTime: db.serverDate() })
    39. let datas = await db.collection('users').add({ data: obj })
    40. let newUser = await await db.collection('users').doc(datas._id).get()
    41. console.log('新增用户', newUser )
    42. return newUser
    43. }
    44. }
    1. {
    2. "name": "login",
    3. "version": "1.0.0",
    4. "description": "",
    5. "main": "index.js",
    6. "scripts": {
    7. "test": "echo \"Error: no test specified\" && exit 1"
    8. },
    9. "author": "",
    10. "license": "ISC",
    11. "dependencies": {
    12. "wx-server-sdk": "latest"
    13. }
    14. }