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


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 相关文章推荐
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
Oct 29 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
Nov 13 Javascript
extjs表格文本启用选择复制功能具体实现
Oct 11 Javascript
js实现瀑布流的一种简单方法实例分享
Nov 04 Javascript
jQuery实现平滑滚动到指定锚点的方法
Mar 20 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
Aug 13 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
Nov 25 Javascript
javascript的函数劫持浅析
Sep 26 Javascript
浅析vue component 组件使用
Mar 06 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
JavaScript基于用户照片姓名生成海报
May 29 Javascript
使用这 6个Vue加载动画库来减少我们网站的跳出率
May 18 Vue.js
微信小程序云开发之新手环境配置
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初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
javascript 特性检测并非浏览器检测
2010/01/15 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
JQuery插件jcarousellite的参数中文说明
2015/05/11 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
vue初始化动画加载的实例
2018/09/01 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
2019/08/05 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
HTML5+Canvas+CSS3实现齐天大圣孙悟空腾云驾雾效果
2016/04/26 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
文秘专业自荐信
2013/10/14 职场文书
自行车租赁公司创业计划书
2014/01/28 职场文书
毕业生工作求职信
2014/06/30 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
司机岗位职责
2015/02/04 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
创业计划书之烤红薯
2019/09/26 职场文书