云开发的增删改查以及云函数的使用还有云储存的使用

1.建立一个云开发项目(需要填写正式的APPID 测试号不可以云开发)

云数据库(开通即可享用免费额度)

个人使用一般够用

如何在控制台中创建数据库集合、往集合上插入数据、以及在控制台中查看刚刚插入的数据。

创建第一个集合

打开控制台,选择 “数据库” 标签页,通过 “添加集合” 入口创建一个集合。假设我们要创建一个待办事项小程序,我们创建一个名为 todos 的集合。创建成功后,可以看到 todos 集合管理界面,界面中我们可以添加记录、查找记录、管理索引和管理权限。
在这里插入图片描述

创建第一条记录

控制台提供了可视化添加数据的交互界面,点击 “添加记录” 添加我们的第一条待办事项:
在这里插入图片描述

添加完成后可在控制台中查看到刚添加的数据。

2.云数据库的增删查改

2.1云数据库的查

db.collection('集合名').doc('记录的id').get({
  success: function(res) {
    // res.data 包含该记录的数据
    console.log(res.data)
  }
})

2.1.1where的使用

let that = this
    db.collection('user').where({
      name:'hh'
    }).get({
      success:function(res){
        console.log('获取数据成功',res)
        that.setData({
          data:res.data
      })
      console.log(that.data.data)
     },fail:function(res){
      console.log('获取数据失败',res)
     }
   })

2.2云数据库的改

    db.collection('user').doc('记录的id').update({
      data: {
        name: "nn"
      },
      success:function(res){
        console.log('更新数据成功',res)
      console.log(that.data.data)
     },fail:function(res){
      console.log('更新数据失败',res)
     }
   })

2.3云数据库的增

let that = this
    console.log(e)
    db.collection('user').add({
      data:{
        name:e.detail.value.name,
        age:e.detail.value.age,
      },success:function(res){
        console.log('添加数据成功',res)
     },fail:function(res){
      console.log('添加数据失败',res)
     }
    })

2.4云数据库的删

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

如果需要更新多个数据,需在 Server 端进行操作(云函数)。

// 使用了 async await 语法
const cloud = require('wx-server-sdk')
const db = cloud.database()
const _ = db.command

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

3.云储存的使用

2.1上传文件

在小程序端可调用 wx.cloud.uploadFile 方法进行上传:

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

上传成功后会获得文件唯一标识符,即文件 ID,后续操作都基于文件 ID 而不是 URL。

2.2下载文件

可以根据文件 ID 下载文件,用户仅可下载其有访问权限的文件:

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

2.3删除文件

可以通过 wx.cloud.deleteFile 删除文件:

wx.cloud.deleteFile({
  fileList: ['a7xzcb'],
  success: res => {
    // handle success
    console.log(res.fileList)
  },
  fail: console.error
})

更详细的 API 可参考小程序端及后端存储 API 文件。

2.4换取临时链接

可以根据文件 ID 换取临时文件网络链接,文件链接有有效期为两个小时:

wx.cloud.getTempFileURL({
  fileList: ['cloud://xxx.png'],
  success: res => {
    // fileList 是一个有如下结构的对象数组
    // [{
    //    fileID: 'cloud://xxx.png', // 文件 ID
    //    tempFileURL: '', // 临时文件网络链接
    //    maxAge: 120 * 60 * 1000, // 有效期
    // }]
    console.log(res.fileList)
  },
  fail: console.error
})

4.云函数

云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。

小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内使用 wx-server-sdk 提供的 getWXContext 方法获取到每次调用的上下文(appid、openid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。

4.1安装nodejs

http://nodejs.cn/download/

4.2在终端使用npm安装包

npm install --save wx-server-sdk@latest

4.3云函数的创建及调用

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

cloud.init({
  env:"数据库的环境id"
})

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}
let that = this
    wx.cloud.callFunction({
      name:"getopenid",
      data:{

      },
      success:function(res){
        console.log('调取函数成功',res)
        that.setData({
          aa:res.result.openid
        })
      },fail:function(res){
        console.log('调用函数失败',res)
      }
    })

4.4云函数的传值并调用

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

cloud.init({
  env: '数据库的环境id'
})

const db = cloud.database()
exports.main = async (event, context) => {
  // collection 上的 get 方法会返回一个 Promise,因此云函数会在数据库异步取完数据后返回结果
  return db.collection('数据库的集合名').where({
    name:event.name
  }).get()
}
wx.cloud.callFunction({
      name:"getdata",
      data:{
        name:"pp"
      },
      success:function(res){
        console.log('数据库获取调取成功',res)
      },fail:function(res){
        console.log('数据库获取调用失败',res)
      }
    })
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值