小程序入门17:小程序云开发之数据库删除一条数据

70 阅读2分钟

写在前面

本篇文章是微信小程序开发入门的第十七篇,介绍小程序云开发之数据库删除一条数据

数据库:删除一条数据

首页是数据库删除记录云函数的编写,打开cloudfunctions\fruit\index.js文件,引入数据库删除记录方法,增加的代码如下:

...
const del = require('./del/index');

// 云函数入口函数
exports.main = async (event, context) => {
  switch (event.type) {
    ...
    case 'del':
      return await del.main(event, context);
  }
}

同时新建文件:cloudfunctions\fruit\del\index.js,编写数据库删除记录的方法,需要传入参数:记录id,代码如下,代码编写完成后依旧需要上传并部署:

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

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
});
const db = cloud.database();

// 删除数据库一条记录云函数入口函数
exports.main = async (event, context) => {
  try {
    await db.collection('fruit').doc(event.id)
      .remove();
    return {
      success: true,
      msg: '删除成功!'
    };
  } catch (e) {
    return {
      success: false,
      msg: '删除失败!'
    };
  }
};

然后是在小程序端调用这个云函数,我们已经在详情页面预留了删除按钮,所以打开miniprogram\pages\fruit-detail\fruit-detail.wxml文件,给删除按钮添加一个监听手指落下的事件:

        <view class="del_btn" bindtap="onDelItem">
          删除
        </view>

接着打开miniprogram\pages\fruit-detail\fruit-detail.js文件,编写onDelItem方法,代码中使用了wx.showModal方法,是小程序的模态弹框,会弹出一个确认框,提示用户“是否确定删除?”,模态框的更多信息可以查看官方文档-模态对话框了解,代码如下:

  onDelItem() {
    let {
      _id,
      name
    } = this.data.fruitDetail
    wx.showModal({
      title: '提示',
      content: `确定删除${name}?`,
      success(res) {
        if (res.confirm) {
          wx.cloud.callFunction({
              // 云函数名称
              name: 'fruit',
              // 传给云函数的参数
              data: {
                type: 'del',
                id: _id,
              },
            })
            .then(res => {
              const {
                success,
                msg
              } = res.result
              if (success) {
                wx.redirectTo({
                  url: `/pages/index/index`,
                })
              } else {
                wx.showToast({
                  title: msg,
                  icon: 'error',
                  duration: 2000
                })
              }
            })
            .catch(err => {})
        } else if (res.cancel) {}
      }
    })
  }

至此数据库删除一条记录的代码就写完了,我们尝试删除,随便点开一条记录后,点击删除按钮,跳出如下提示:

image.png

点击确定后可以看到Network-Cloud调用了云函数,并且显示调用成功,且页面也跳转回了列表页,并且刚刚删除的数据也没了:

image.png

到此,数据库增删改查我们都已学完

写在最后

以上就是小程序云开发之数据库删除一条记录的全部内容