微信小程序-云开发

云开发

初始化

wx.cloud.init({
  env: 'test-x1dzi'
})

云数据库

数据类型 String,Number,Boolean,Array,Object,Date,GeoPoint,Null

权限管理,小程序的权限分小程序端和管理端,其中管理端包括云函数和云控制台

  小程序运行的程序,读写数据库受权限控制

  管理端拥有读写数据库全部权限

初始化

const db = wx.cloud.database()

获取数据库集合

const todos = db.collection('todos')

假设有个ID为'todo-identifiant-aleatoire',可以通过doc获得

const todo = db.collection('todos').doc('todo-identifiant-aleatoire')

插入数据

通过add方法添加数据

db.collection('todos').add({
  // data 字段表示需新增的 JSON 数据
  data: {
    // _id: 'todo-identifiant-aleatoire', // 可选自定义 _id,在此处场景下用数据库自动分配的就可以了
    description: 'learn cloud database',
    due: new Date('2018-09-01'),
    tags: [
      'cloud',
      'database'
    ],
    // 为待办事项添加一个地理位置(113°E,23°N)
    location: new db.Geo.Point(113, 23),
    done: false
  },
  success(res) {
    // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id
    console.log(res)
  }
})

查询数据

通过get方法查询数据

db.collection('todos').doc('todo-identifiant-aleatoire').get({
  success(res) {
    // res.data 包含该记录的数据
    console.log(res.data)
  }
})

获取多条记录

db.collection('todos').where({
  _openid: 'user-open-id',
  done: false
})
  .get({
    success(res) {
    // res.data 是包含以上定义的两条记录的数组
      console.log(res.data)
    }
  })

小程序端只能获取一条数据,获取多条数据可以通过云函数

  return new Promise((resolve, reject) => {
    db.collection('test').where({
      done: false
    }).get().then(res=>{
      resolve(res)
    }).catch(err=>{
      reject(err)
    })
  })

小程序端调用云函数

wx.cloud.callFunction({
  name:'get',
  success: res=>{
    console.log(res)
  }
})

更新数据

db.collection('todos').doc('todo-identifiant-aleatoire').update({
  // data 传入需要局部更新的数据
  data: {
    // 表示将 done 字段置为 true
    done: true
  },
  success(res) {
    console.log(res.data)
  }
})

删除数据

db.collection('todos').doc('todo-identifiant-aleatoire').remove({
  success(res) {
    console.log(res.data)
  }
})

云函数

在跟目录package.config.json配置

{
  "cloudfunctionRoot": "./functions/"
}

云函数模板

const cloud = require('wx-server-sdk')
// 云函数入口函数
exports.main = async (event, context) => {

}

代码

exports.main = async (event, context) => ({
  sum: event.a + event.b
})

小程序中调用云函数

wx.cloud.callFunction({
  // 云函数名称
  name: 'add',
  // 传给云函数的参数
  data: {
    a: 1,
    b: 2,
  },
  success(res) {
    console.log(res.result.sum) // 3
  },
  fail: console.error
})

云存储

上传文件

wx.cloud.uploadFile({
  cloudPath: 'example.png', // 上传至云端的路径
  filePath: '', // 小程序临时文件路径
  success: res => {
    // 返回文件 ID
    console.log(res.fileID)
  },
  fail: console.error
})

下载文件

wx.cloud.downloadFile({
  fileID: '', // 文件 ID
  success: res => {
    // 返回临时文件路径
    console.log(res.tempFilePath)
  },
  fail: console.error
})

删除文件

wx.cloud.deleteFile({
  fileList: ['a7xzcb'],
  success: res => {
    // handle success
    console.log(res.fileList)
  },
  fail: console.error
})
原文地址:https://www.cnblogs.com/sonwrain/p/10884379.html