微信小程序之运用云函数对云数据库进行增删改查

首先要创建并配置好云环境

创建云环境

打开微信小程序 点击云开发 创建云环境

微信小程序数据存入mysql 微信小程序数据库放哪_数组


云环境创建以后微信小程序暂不支持删除云环境哦 所以要给云环境取名规范哦

配置云环境

新建一个目录 我将它命名为cloud 打开project.config.json写上云函数所在目录"cloudfunctionRoot": “cloud/” 当目录带有一个云朵的时候就是云函数上传并部署成功

新建云函数目录

在云函数的目录下面新建Node.js云函数

增加

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

cloud.init()
//初始化云函数
const db = cloud.database()
// 云函数入口函数
// 获取加入数据库商品的信息
exports.main = async (event, context) => {
//collection里面时要增加数据的表的名称
  return db.collection('goodsCar').add({
    data:{
    //oName oClassify等是goodsCar表的字段名
    //event.name是接收的从js文件里传过来的值
      oName:event.name,
      oClassify:event.classify,
      oDetail:event.detail,
      oImg:event.img,
      oPrice:event.price,
      gID:event.id
    }
  })
}

然后在对应的js文件里面引用这个云函数

//加入购物车
  addCar: function () {
    wx.cloud.callFunction({
      name: "addCar",//云函数名称
      data: {
      //这些是你要增加到数据库表内的数据
        name: "啵啵的女孩",
        classify: "女孩",
        price: 1000,
        img: "../img/我的.png",
        detail: "一个打代码的女孩纸",
        id:"124324"
      },
      success(res) {
        console.log("加入购物车成功:", res)
        wx.showToast({
        //运行成功显示的提示框
          icon: 'success',
          title: '加入购物车成功',
        })
      },
      fail(res) {
        console.log("加入购物车失败:", res)
      }
    })
  },

重点来了!!!编写完云函数以后一定要记得上传并部署 只要修改了云函数 就必须上传并部署 要不然就永远都是错误的

微信小程序数据存入mysql 微信小程序数据库放哪_微信小程序数据存入mysql_02


删除

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

cloud.init()
const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
//从js文件里面传过来删除的条件,这里传递的是一个id
  var id = event.ids
  return await db.collection('address').doc(id).remove()
}
//删除购物车内的商品
  deleteGoods: function () {
  //这是获取的要删除的商品的Id
    console.log(this.data.deleteId)
    var that = this;
    wx.cloud.callFunction({
      name: "deleteGoodsCar",
      data: {
        id: that.data.deleteId
      },
      success: function (res) {
        wx.showToast({
          title: '删除成功',
          icon: "success"
        })
        that.fresh()
        console.log("删除成功", res)
      },
      fail(res) {
        console.log("删除失败", res)
      }
    })
  },

批量删除
如果你想要实现批量删除,那就要传递俩参数到云函数里面,
在删除,代码如下

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
//获取购物车内商品信息并删除
const db = cloud.database();
// 云函数入口函数
exports.main = async (event, context) => {
//用for将id传入到js里面
  for (let i = 0; i < event.id.length; i++) {
    var dete = db.collection("goodsCar").where({
      _id: event.id[i]
    }).remove()
  }
  return dete
}

点击获取id

// 获取要删除和结算的ID
  getID: function (e) {
    console.log("要算出和结算的id为", e.currentTarget.dataset.value)
    var deleteID = e.currentTarget.dataset.value;
    var Date = this.data.deleteId
    this.setData({
    //将获取到的id变成数组放到deleteId里面 要注意,在data里面deleteId要设置成数组,例如deleteId:[]
      deleteId: Date.concat(deleteID)
    })
    console.log("数组", this.data.deleteId)
  },

js函数不变
模糊查询

const _ = db.command
Page({
  //获取输入框中信息
  searchName: function (e) {
    console.log("获取到信息为", e.detail.value);
    this.setData({
      value: e.detail.value
    })
  },
  //模糊查询
  dimEnquiry: function (e) {
    var that = this;
    //goods是要查询的表
     db.collection('goods').where(_.or([{
     //gName、gClassify是要模糊查询的字段
      gName: db.RegExp({
        regexp: that.data.value,
        options: 'i',
      })
    },
    {
      gClassify: db.RegExp({
        regexp: that.data.value,
        options: 'i',
      })
    }
  ])
       ).get({
      success(res) {
        console.log("模糊查询成功", res);
        that.setData({
          goods: res.data
        })
      },
      fail(res) {
        console.log("模糊查询失败", res)
      }
    })
  },