当前位置:   article > 正文

微信小程序云开发云函数总结_c# wx.cloud.init

c# wx.cloud.init
1、小程序创建项目时选择云开

在这里插入图片描述

2、创建

进入小程序后选择云开
在这里插入图片描述
在设置中创建配置环境
在这里插入图片描述
在小程序中cloudfunctions文件下选择创建的环境并创建nodejs云函数,在每个云函数下的index.js中进行编译

3、login云函数

创建项目后自动生成只需要上传部署就行

4、新增数据云函数
// 云函数入口文件
const cloud = require('wx-server-sdk')

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

const db = cloud.database()
// 云函数入口函数

exports.main = async (event, context) => {
  try {
    return await db.collection(event.base).add({
      // data 字段表示需新增的 JSON 数据
      data: event.para
    })
  } catch (e) {
    console.error(e)
  }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
5、基本查询云函数
// 云函数入口文件
const cloud = require('wx-server-sdk')

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

const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  try {
    return await db.collection(event.base).get()
  } catch (e) {
    console.error(e)
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
6、分页查询
// 云函数入口文件
const cloud = require('wx-server-sdk')

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

const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  try {
    return await db.collection(event.base).skip(event.skip).limit(event.limit).get()
  } catch (e) {
    console.error(e)
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
7、条件查询
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  // API 调用都保持和云函数当前所在环境一致
  env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  try {
    return await db.collection(event.base).where(event.where).get()
  } catch (e) {
    console.error(e)
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
8、条件分页查询
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  // API 调用都保持和云函数当前所在环境一致
  env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  try {
    return await db.collection(event.base).where(event.where).skip(event.skip).limit(event.limit).get()
  } catch (e) {
    console.error(e)
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
9、序列查询
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  // API 调用都保持和云函数当前所在环境一致
  env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
// 云函数入口函数
exports.main = async (event, context) => {
  try {
    return await db.collection(event.base).orderBy(event.progress, event.by).where(event.where).skip(event.skip).limit(event.limit).get()
  } catch (e) {
    console.error(e)
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
10、删除数据云函数
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

const db = cloud.database()
// 云函数入口函数

exports.main = async (event, context) => {
  try {
    return await db.collection(event.base).where(event.where).remove()
  } catch (e) {
    console.error(e)
  }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
11、删除文件云函数
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
  const result = await cloud.deleteFile({
    fileList: event.files,
  })
  return result.fileList

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
12、更改数据云函数
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

const db = cloud.database()
// 云函数入口函数

exports.main = async (event, context) => {
  try {
    return await db.collection(event.base).doc(event.where).update({
      data: event.data
    })
  } catch (e) {
    console.error(e)
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
13、云函数调用封装
// 增
function add(data, success, error, fail) {
  // data = {base:'数据库名称',para:'保存的数据【对象、字符串、数组等】'}
  wx.cloud.callFunction({
    name: 'add',
    data: data,
    success: res => {
      if (res.result == null) {
        wx.showToast({
          title: '网络开小差,请稍后',
          icon: 'none',
          duration: 800
        })
        error(res)
      }
      if (res.result.errMsg == 'collection.add:ok') {
        success(res)
      }
    },
    fail(res) {
      fail(res)
    }
  })
}
// 删
function remove(remove, data, success, fail) {
  // 1、删除数据库数据
  // remove:'del'
  // data = {base:'数据库名称',where:{满足删除的条件}}
  // 2、删除文件
  // remove:'del-file'
  // data = {[files]}
  wx.cloud.callFunction({
    name: remove,
    data: data,
    success: res => {
      if (remove == 'del') {
        if (res.result == null) {
          wx.showToast({
            title: '删除失败',
            icon: 'none',
            duration: 800,
          })
          return
        }
        if (res.result.errMsg == 'collection.remove:ok') {
          // 0:删除文件不存在或已删除 1:删除成功
          success(res.result.stats.removed)
        }
      }
      if (remove == 'del-file') {
        var stats;
        if (res.result.length == data.files.length) {
          for (var i in res.result) {
            if (res.result[i].status == 0) {
              // 删除成功
              stats = 0
            }
            else if (res.result[i].status == -503003) {
              // 文件不存在或已删除
              stats = 1
            } else {
              // 删除失败文件
              stats = []
              stats.push(res.result[i])
            }
          }
          success(stats)
        }
      }
    },
    fail: res => {
      fail(res)
    }
  })
}
// 改
function updata(updata, data, success, error, fail) {
  // 1、修改一条数据的基本内容
  // updata:'updata'
  // data{base:'数据库名称',where:'修改数据的key值',data:{所要修改的内容的字段:所要修改的内容}}
  // data.data.dateJson = Util.formatTimeJson(new Date())
  // data.data.datetime = Util.formatTime(new Date())
  // data.data.timestamp = new Date().getTime();
  wx.cloud.callFunction({
    name: updata,
    data: data,
    success: res => {
      if (res.result.errMsg == 'document.update:ok') {
        // 0 更新内容不存在 1 更新成功
        success(res.result.stats.updated)
      }
    },
    fail: res => {
      fail(res)
    }
  })
}
// 查
function wxGet(query, data, success, error, fail) {
  // 1、基本批量查询
  // query:'query' 
  // data = {base:'数据库名称'}
  // 2、分页查询
  // query:'query-limit'
  // data = {base:'数据库名称',limit:'限制返回数量',skip:'从当前skip后一条开始加载'}
  // 3、条件查询
  // query:'query-where' 
  // data = {base:'数据库名称',where: {查询的条件}}
  // 4、条件分页查询
  // query:'query-where-limit' 
  // data = {base:'数据库名称',where: {查询的条件},limit:'限制返回数量',skip:'从当前skip后一条开始加载'}
  // 5、序列查询
  // query:'time-order'
  // data = {base:'数据库名称',progress: '序列查询的条件',by:'查询方式',where: {查询的条件,有则传参,无则空对象},limit:'限制返回数量',skip:'从当前skip后一条开始加载'}
  wx.cloud.callFunction({
    name: query,
    data: data,
    success: res => {
      if (res.result == null) {
        success(null)
      } else if (res.result.errMsg == 'collection.get:ok') {
        success(res.result.data)
      }

    },
    fail: res => {
      fail(res)
    }
  })
}
// 发送消息
function sendMsg(data,success){
  wx.cloud.callFunction({
    name:"msg-send",
    data:data,
    success: res => {
      console.log("发送结果",res);
    },
  })
}
module.exports = {
  add: add,
  remove: remove,
  wxGet: wxGet,
  updata: updata,
}
//在页面中调用
var request = require('../../request/request.js');
request.add()
request.remove()
request.wxGet()
request.updata()
  • 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
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
14、文件上传
//文件上传不需要创建云函数处理但是需要调用上传文件的云函数
//var Util = require('../../utils/utils.js');
// 上传
function upfile(that, fileName, filePaths, success, fail) {
  var i = 0;
  var len = filePaths.length;
  uploop(that, fileName, filePaths, i, len, success, fail);
}
function uploop(that, fileName, filePaths, i, len, success, fail) {
  if (len == 0) {//上传数据数据为空[]
    success([null])
  } else {
    uploadfile(that, fileName, filePaths, i, len, success, fail)
  }
}
function uploadfile(that, fileName, filePaths, i, len, success, fail) {
  var imgFile = filePaths[i];
  if (imgFile == undefined) {
    success(that.data.files)
    that.setData({ files: [] })
  }
  var filePath = imgFile.path;
  var fileSize = imgFile.size;
  console.log(fileSize)
  //var dateJson = Util.formatData(new Date(), 'yyMMddhhmmss');
  const cloudPath = fileName + '/' + dateJson + fileSize + filePath.match(/\.[^.]+?$/)[0];
  wx.cloud.uploadFile({
    cloudPath: cloudPath,
    filePath: filePath,
    success:res=>{
      console.log(res)
      var files = that.data.files
      files.push(res.fileID);
      that.setData({ files: files })
      if (parseInt(i) + 1 <= len) {
        i = i + 1
        uploadfile(that, fileName, filePaths, i, len, success, fail)
      }
    }
  })
}

module.exports = {
  upfile: upfile
}
//在页面中调用upfile();
  • 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
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/570731
推荐阅读
相关标签
  

闽ICP备14008679号