小程序云函数个数有限制如果一个文件写多个函数

直接上代码,哈哈,里面是一些常用的去函数

入口函数里面用switch判断传递进来的参数action,不同的action调用不同的去函数

下同定义多个async云函数。

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

cloud.init()

const db = cloud.database();

// 云函数入口函数
exports.main = async (event, context) => {
  console.log(event)
  switch (event.action) {
    case 'sendTemplateMessage': {
      return sendTemplateMessage(event)
    }
    case 'getWXACode': {
      return getWXACode(event)
    }
    case 'getOpenData': {
      return getOpenData(event)
    }
    case 'getPhone': {
      return getPhone(event)
    }
    case 'getpnumber': {
      return getpnumber(event)
    }
    case 'hdView': {
      return hdView(event)
    }
    case 'hdDown': {
      return hdDown(event)
    }
    case 'upJifen': {
      return upJifen(event)
    }
    default: {
      return
    }
  }
}

async function sendTemplateMessage(event) {
  const { OPENID } = cloud.getWXContext()

  // 接下来将新增模板、发送模板消息、然后删除模板
  // 注意:新增模板然后再删除并不是建议的做法,此处只是为了演示,模板 ID 应在添加后保存起来后续使用
  // const addResult = await cloud.openapi.templateMessage.addTemplate({
  //   id: 'AT0002',
  //   keywordIdList: [3, 4, 5]
  // })

  const templateId = 'AGAqGK9g4v08fzwj2umqJBQ1TIvJipWhvbknBGhm8SM'

  const sendResult = await cloud.openapi.templateMessage.send({
    touser: OPENID,
    templateId,
    formId: event.formId,
    page: 'pages/mydown/mydown',
    data: {
      keyword1: {
        value: '您的邮箱',
      },
      keyword2: {
        value: '课程名子',
      },
      keyword3: {
        value: '2019 年 06 月 20 日',
      },
      keyword4: {
        value: '说明文字',
      },
    }
  })

  await cloud.openapi.templateMessage.deleteTemplate({
    templateId,
  })

  return sendResult
}

async function getWXACode(event) {

  // 此处将获取永久有效的小程序码,并将其保存在云文件存储中,最后返回云文件 ID 给前端使用

  const wxacodeResult = await cloud.openapi.wxacode.get({
    path: 'pages/openapi/openapi',
  })

  const fileExtensionMatches = wxacodeResult.contentType.match(/\/([^\/]+)/)
  const fileExtension = (fileExtensionMatches && fileExtensionMatches[1]) || 'jpg'

  const uploadResult = await cloud.uploadFile({
    // 云文件路径,此处为演示采用一个固定名称
    cloudPath: `wxacode_default_openapi_page.${fileExtension}`,
    // 要上传的文件内容可直接传入图片 Buffer
    fileContent: wxacodeResult.buffer,
  })

  if (!uploadResult.fileID) {
    throw new Error(`upload failed with empty fileID and storage server status code ${uploadResult.statusCode}`)
  }

  return uploadResult.fileID
}

async function getOpenData(event) {
  // 需 wx-server-sdk >= 0.5.0
  return cloud.getOpenData({
    list: event.openData.list,
  })
}

// 浏览加一
async function hdView(event){
  await db.collection("huodong").doc(event.hdid).update({
    data: {
      viewnum: parseInt(event.viewnum) + 1
    }
  }).then(res => {
    return res
  })
}

// 下载加一
async function hdDown(event){
  await db.collection("huodong").doc(event.hdid).update({
    data: {
      downnum: parseInt(event.downnum) + 1
    }
  }).then(res => {
    return res
  })
}

// 浏览资料状态更新
async function upJifen(event){
  await db.collection("jifen").doc(event.jfid).update({
    data: {
      state: 1
    }
  }).then(res => {
    return res
  })
}

async function getPhone(event) {
  // 需 wx-server-sdk >= 0.5.0
  const wxContext = cloud.getWXContext()  
  var moblie = event.weRunData.data.phoneNumber;  
  await db.collection("user").where({
    _openid:event.openid
  }).update({
    data: {
      phone: moblie
    }
  }).then(res => {
    return res
  })
}
//获取手机号
async function getpnumber(event) {
  // 需 wx-server-sdk >= 0.5.0
  const wxContext = cloud.getWXContext()  
  var moblie = event.weRunData.data.phoneNumber;
  return moblie;
}

猜你喜欢

转载自blog.csdn.net/qq_28471389/article/details/113399169