微信小程序云开发之模拟后台增删改查


Posted in Javascript onMay 16, 2019

小程序云开发出来之后,小程序开发人员也要慢慢的接触后端对数据的增删改查了。下面就给大家提供一个案例吧。

微信小程序云开发之模拟后台增删改查

这里我把新增和修改放在了一个页面

  微信小程序云开发之模拟后台增删改查  微信小程序云开发之模拟后台增删改查

显示页面index.wxml

<view wx:if="{{books}}" class='container'>
    <view class='title'>
     <text>图书列表</text>
    </view>
    <view class='label'>
     <text>书名</text>
     <text>作者</text>
     <text>价格</text>
     <text>操作</text>
    </view>
   <block wx:for="{{books}}" wx:key="">
      <view class='content'>
       <text>{{item.name}}</text>
       <text>{{item.author}}</text>
       <text>{{item.price}}</text>
       <button class='del' data-id='{{item._id}}' bindtap='onDel'>删除</button>
       <button class='update' data-id='{{item._id}}' bindtap='onUpdate'>修改</button>
     </view>
   </block>
</view>
<view wx:else="{{books}}" class='none'>
   <text >暂时没有图书!</text>
</view>
<view class='add'>
  <button bindtap='goSet'>添加图书</button>
</view>

index.js

// pages/index/index.js
Page({
 
 /**
  * 页面的初始数据
  */
 data: {
   books:[] 
 },
 
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
  const db = wx.cloud.database()
  db.collection("books").get({
   success:res=>{
    this.setData({
     books:res.data
    })
   },fail:err=>{
    wx.showToast({
     icon:"none",
     title: '查询记录失败',
    })
   }
  })
 },
  goSet:function(){
  wx.navigateTo({
   url: '../set/set',
  })
 
 }, onDel:function(e){
   let id = e.currentTarget.dataset.id
   const db = wx.cloud.database();
   db.collection("books").doc(id).remove({
    success:res=>{
     wx.showToast({
      title: '删除成功',
     })
     this.onLoad()//删除成功重新加载
    },fail:err=>{
     wx.showToast({
      title: '删除失败',
     })
    }
   })
   console.log(id)
 },onUpdate:function(e){
   let id = e.currentTarget.dataset.id
   wx.navigateTo({
    url: '../set/set?id='+id,
   })
 }
})

添加和修改共用set.wxml

<!--pages/set/set.wxml-->
<view class='container'>
   <form bindsubmit='comfirm' >
    <view class='input-container'>
      <label>书名:</label>
      <input style='display:none' data-value='{{id}}' name="id" value='{{book._id}}'></input>
      <input data-value='{{name}}' name="name" value='{{book.name}}'></input>
    </view>
    <view class='input-container'>
      <label>作者:</label>
      <input data-value='{{author}}' name="author" value='{{book.author}}'></input>
    </view>
    <view class='input-container'>
      <label>价格:</label>
      <input data-value='{{price}}'  name ="price" value='{{book.price}}'></input>
    </view>
    <view class='comfirm'>
      <button  form-type='submit'>保存</button>
   </view>
  </form>
</view>

set.js

// pages/set/set.js
Page({
 
 /**
  * 页面的初始数据
  */
 data: {
   book:[]
 },
 
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
  if(options.id){
   const db = wx.cloud.database();
   db.collection("books").where({
    _id:options.id
   }).get({
    success:res=>{
     this.setData({
      book:res.data[0]//返回的是一个数组,取第一个
     })
    },fail:err=>{
     console.log(err)
    }
   })
  }
 },
 comfirm:function(e){
  const db = wx.cloud.database()//打开数据库连接
  let book = e.detail.value
  if(book.id==""){//id等于空是新增数据
   this.add(db,book) //新增记录
  }else{
   this.update(db,book) //修改记录
  }
 }, add: function (db, book) {
   db.collection("books").add({
    data: {
     name: book.name,
     author: book.author,
     price: parseFloat(book.price)
    }, success: res => {
     wx.showToast({
      title: '新增记录成功',
     })
     wx.navigateTo({
      url: '../index/index',
     })
    }, fail: err => {
     wx.showToast({
      title: '新增失败',
     })
    }
   })
    
 }, update: function (db, book) {
  db.collection("books").doc(book.id).update({
   data: {
    name: book.name,
    author: book.author,
    price: parseFloat(book.price)
   }, success: res => {
    wx.showToast({
     title: '修改记录成功',
    })
    wx.navigateTo({
     url: '../index/index',
    })
   }, fail: err => {
    wx.showToast({
     title: '修改失败',
    })
   }
  })
 } 
 
})

云开发后台数据,需要手动添加books集合:

微信小程序云开发之模拟后台增删改查

wechat

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS支持带x身份证号码验证函数
Aug 10 Javascript
JavaScript中两个感叹号的作用说明
Dec 28 Javascript
JavaScript利用正则表达式去除日期中的“-”
Jul 01 Javascript
jQuery函数map()和each()介绍及异同点分析
Nov 08 Javascript
元素绑定click点击事件方法
Jun 08 Javascript
jquery自动补齐功能插件flexselect用法示例
Aug 06 Javascript
浅谈JavaScript中变量和函数声明的提升
Aug 09 Javascript
js表单元素checked、radio被选中的几种方法(详解)
Aug 22 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
Feb 10 Javascript
JS实现百度网盘任意文件强制下载功能
Aug 31 Javascript
js实现倒计时器自定义时间和暂停
Feb 25 Javascript
vue 使用post/get 下载导出文件操作
Aug 07 Javascript
微信小程序云开发之新手环境配置
May 16 #Javascript
vue项目中使用scss的方法步骤
May 16 #Javascript
微信小程序云开发使用方法新手初体验
May 16 #Javascript
angular多语言配置详解
May 16 #Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
May 16 #Javascript
Django模板继承 extend标签实例代码详解
May 16 #Javascript
vue视图不更新情况详解
May 16 #Javascript
You might like
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
9个比较实用的php代码片段
2016/03/15 PHP
PHP排序二叉树基本功能实现方法示例
2018/05/26 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
微信小程序自定义组件
2017/08/16 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
vue-router 前端路由之路由传值的方式详解
2019/04/30 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
python使用多线程不断刷新网页的方法
2015/03/31 Python
python执行等待程序直到第二天零点的方法
2015/04/23 Python
Python如何为图片添加水印
2016/11/25 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
分享一个python的aes加密代码
2020/12/22 Python
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
实习生求职自荐信
2014/02/07 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
高中军训感言400字
2014/02/24 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
仲裁协议书
2014/09/26 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书