微信小程序-云函数

8/6/2021 js

20210806142732

# 官方文档

https://developers.weixin.qq.com/miniprogram/dev/framework/

# 登录

// 云函数模板
// 部署:在 cloud-functions/login 文件夹右击选择 “上传并部署”

const cloud = require('wx-server-sdk')

// 初始化 cloud
cloud.init({
  // API 调用都保持和云函数当前所在环境一致
  env: cloud.DYNAMIC_CURRENT_ENV
})

/**
 * 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端
 * 
 * event 参数包含小程序端调用传入的 data
 * 
 */
exports.main = async (event, context) => {
  console.log(event)
  console.log(context)

  // 可执行其他自定义逻辑
  // console.log 的内容可以在云开发云函数调用日志查看

  // 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)等信息
  const wxContext = cloud.getWXContext()
  console.log("openid:"+cloud.getWXContext().OPENID)
  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
    env: wxContext.ENV,
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

# 查询

// 云函数入口文件
const cloud = require('wx-server-sdk')
const moment = require('moment-timezone')
cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  let time = moment().tz("Asia/Shanghai").format("YYYY-MM-DD")
  const db = cloud.database()
  console.log("queryOne")
  console.log("openid:"+cloud.getWXContext().OPENID)
  return db.collection('counters').where({
        openid: cloud.getWXContext().OPENID,
        createTime: time
    }).get();
}
// 返回值是optional<Object> 可以通过data获取,注意,如果是在别的函数中调用还需要有一层result
//demo
console.log(res.data)// 本方法中获取
console.log(res.result.data)// 其他方法调用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 更新

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  console.log("openid:"+cloud.getWXContext().OPENID)
// 获取入参
  var districtId=event.districtId
  console.log(districtId)
  // 获取操作指令
  const _ = db.command
  db.collection('district').doc(districtId).update({
    data:{
      // 其他
      counter: _.inc(1)
    },
    success: function(res){
      console.log(res.data)
      return res.data
    }
  }) 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 时间格式化

添加moment-time依赖到package.json

{
  "name": "queryOne",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "wx-server-sdk": "~2.5.3",
    "moment-timezone": "latest"
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

当前目录下执行npm install

// 格式化时间
let time = moment().tz("Asia/Shanghai").format("YYYY-MM-DD")
1
2
Last Updated: 4/10/2022, 8:00:19 PM