• 微信小程序-云开发


    云开发

    初始化

    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
    })
  • 相关阅读:
    前后端分离方式渲染数据(2018/11/12)
    vue.js 2.0 --- 安装node环境,webpack和脚手架(入门篇)
    css 布局,过渡
    java.lang.InstantiationException: com.lch.commder.entity.Car 已解决
    [Err] 1146
    js简单图片切换
    HTML5布局篇
    IntelliJ IDEA(快捷键)
    hibernate检索策略
    hibernate(一对多关系)
  • 原文地址:https://www.cnblogs.com/sonwrain/p/10884379.html
Copyright © 2020-2023  润新知