前后端分离:前端请求云函数(书写逻辑),后端请求数据库(操作数据)

一、云函数初体验

  • 错误1:Cannot find module ‘wx-server-sdk’
# getData/index.js// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
//获取数据库的引用
const db=cloud.database();// 云函数入口函数
exports.main = async (event, context) => {// return event;   //event可以接收调用者通过data传入的所有参数// return event.name;    //event.name是获取传入的name值// return await db.collection("demoList").get()  //异步请求数据库 await 等待异步请求进行返回return await db.collection("demoList").limit(event.num).get()   //请求demoList的记录,并且只显示3条记录
}
# pages/demo/demo2.jsPage({data: {},onLoad: function (options) {// 请求云函数wx.cloud.callFunction({name:"getData",   //name指定被请求函数的名称data:{name:"张三",age:20,num:3,   //limit(num),分页查询,一页显示3个数据}}).then(res=>{console.log("hbsad",res)})},
})

二、小案例

1.触底刷新+自增长
<!--pages/demo3/demo3.wxml-->
<view class="container" wx:for="{{demoList}}" wx:index="index" bindtap="addAge" data-id="{{item._id}}" data-index="{{index}}"><view>{{index}}.我的名字是{{item.name}},年龄是{{item.age}}</view>
</view>/* pages/demo3/demo3.wxss */
.container{width: 100%;height: 250rpx;border: 1px solid gray;
}
// pages/demo3/demo3.js
Page({data: {demoList:[],   //要初始化为一个数组,不能只使用空字符串},//获取数据getData(num=5,page=0){wx.cloud.callFunction({name:'getData',data:{num:num,  //limit(5),1页加载5条数据page:page,  //加载第几页}}).then(res=>{// console.log(res.result.data)var oldList=this.data.demoList   //旧数组var newList=oldList.concat(res.result.data)   //新数组,使用concat把旧数组和触底刷新出的5条数据进行拼接this.setData({demoList:newList})})},//增加年龄addAge(e){wx.showLoading({title: '数据加载中...',mask:true})//获取点击框对应的id和indexvar id=e.target.dataset.id;var index=e.target.dataset.index;//请求云函数进行更新操作,点击一次,年龄增加2(传给后端云函数的数据),后端返回给小程序数据wx.cloud.callFunction({name:"addAge",data:{id:id,}}).then(res=>{var newList=this.data.demoListnewList[index].age+=2;this.setData({demoList:newList})wx.hideLoading()})//重新渲染列表数据},onLoad: function (options) {  //监听页面加载this.getData()     //加载5条数据,第0页},onReachBottom: function () {  //页面上拉触底事件的处理函数//触底时获取数组个数var page=this.data.demoList.lengththis.getData(5,page)        //加载5条数据,第1页},
})
// getData/index.js
// 云函数入口文件
const cloud = require('wx-server-sdk')cloud.init()
//获取数据库的引用
const db=cloud.database();// 云函数入口函数
exports.main = async (event, context) => {return await db.collection("demoList").skip(event.page).limit(event.num).get()  //event.page,第几页(翻页)
}
// 云函数入口文件
const cloud = require('wx-server-sdk')cloud.init()
const db=cloud.database()
const _=db.command;// 云函数入口函数
exports.main = async (event, context) => {var id=event.id;return await db.collection("demoList").doc(id).update({data:{age:_.inc(2)}})
}
云函数怎么实现多个方法
exports.main = async (event, context) => {    //patientlist数据可由后端添加try{switch (event.action) {case 'getPatientListByOpenid': {return await db.collection('patientlist').where({_openid:event._openid}).get({success:res=>{return res;}})}case 'getPatientListByPatientidentity': {return await db.collection('patientlist').where({patientidentity:event.patientidentity}).get({success:res=>{return res;}})}}  default: {return await db.collection('patientlist').where({_id:event._id}).get({success:res=>{return res;}})}}}catch(e){return e;}
}

微信小程序 - - 云开发の云函数学习笔记相关推荐

  1. 微信小程序6-云开发-云数据库

    微信小程序1-小程序基础,开发工具安装使用 微信小程序2-WXSS,WXS 微信小程序3-小程序生命周期和组件 微信小程序4-小程序的api 微信小程序5-真机测试 1.云开发 1).什么是云开发 微 ...

  2. 《微信小程序商城界面设计实战》--学习笔记作业

    一.学习笔记 1.注释:wxml文档注释: css文档注释:/** **/ js文档注释:单行注释以"//"开头:多行注释以"/"开头,以"/&quo ...

  3. 【微信小程序-原生开发+云开发+TDesign】修改用户头像(含wx.chooseMedia,wx.cloud.uploadFile,wx.cloud.deleteFile的使用)

    效果预览 核心技术(含业务逻辑) 选择新头像(本地图片) 使用 wx.chooseMedia 选择本地图片,官网见 https://developers.weixin.qq.com/miniprogr ...

  4. 微信小程序:uni-app云开发的网盘助手

    这是一款uni-app开发的一款网盘小助手小程序源码 该源码主要用于用户输入关键词然后全网抓取百度网盘资源内容 另外呢该小程序还可以免费领取百度网盘七天会员,所以用来引流特别的不错 该小程序还有外卖系 ...

  5. 微信小程序中配置云开发

    微信小程序中配置云开发 一.配置 app.js 文件 onLaunch() {wx.cloud.init({env: 'cloud1-xxxxxxxxxx', // 云开发 环境IDtraceUser ...

  6. 微信小程序:(更新)云开发微群人脉

    大家好,今天给大家带来的这一款是经过优化更新并有所改动的一个版本 我们之前也发布过一款,今天这一款是在之前的哪一款的基础下增加优化 该小程序的群码都是系统自动采集的,所以没有上线但是没有群的烦恼 另外 ...

  7. 【微信小程序-原生开发】实用教程09 - 可滚动选项,动态列表-步骤条(含事件传参),动态详情(含微信云查询单条数据 doc)

    开始前,请先完成圆梦宝典中滚动公告栏的开发,详见 [微信小程序-原生开发]实用教程 08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据 ...

  8. 仿京细菜谱微信小程序源码 云开发菜谱微信小程序源码

    京细菜谱是一个美食分享网站,提供优质的家常菜谱大全,仿京细菜谱小程序源码为喜欢美食的朋友提供了很多的美食烹饪教程 让您轻松学会做美食.对不同食材和地域的饮食做了不同的分类和详细的做菜方法 分类十分详细 ...

  9. 微信小程序——传统开发模式与云开发模式对比

    目  录 1.传统开发模式与云开发模式的对比图 2.云开发技术能力说明 3.云开发技术特点 1.传统开发模式与云开发模式的对比图 通过传统开发模式与云开发模式的对比图可以看出传统开发模式需要开发者关注 ...

  10. 微信小程序使用阿里云物联网API开发物联网应用

    微信小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或者搜一下就可以打开的应用. 微信小程序具有方便快捷,速度快,安全及保密性高的优点,同时开发 ...

最新文章

  1. 提取scss变量,交给js
  2. leetcode算法题--1比特与2比特字符
  3. 几款开源的图形化Redis客户端管理软件推荐
  4. (AS3)组内成员之间的互斥管理
  5. TensorFlow(九)eval函数
  6. Cell发文!施一公科研团队取得重大突破
  7. 执行dos命令,不出现黑色的dos窗口
  8. RuntimeWarning: coroutine ‘ClientResponse.text‘ was never awaited self._context.run(self._callback)
  9. eclipse新建服务器项目,使用eclipse快速新建spirngboot项目的方法
  10. svg 动画_svg 动画介绍(一)
  11. 【笔记】android 系统常用user id列表
  12. 通过vdi备份linux,Linux_Ubuntu下VirtualBox的vdi文件克隆方法,使用VirtualBox时遇到一个问题, - phpStudy...
  13. Unity发布WebGL不显示中文字体问题
  14. JS逆向 2021-8-16 网易云音乐 params、encSecKey参数
  15. Pearson,Kendall和Spearman三种相关分析方法的异同
  16. 常见Android面试题整理
  17. 2019牛客暑期多校训练营(第七场)-B Irreducible Polynomial(多项式因式分解)
  18. android(跳动的心)
  19. 【逗老师带你学IT】ZoomRooms兼容硬件设计方案
  20. 熱銷商品查詢php,ecshop首页调用指定商品分类下推荐热销最新商品

热门文章

  1. 实现计算景区门票打折界面(JAVA界面设计)
  2. 数学闭区间和开区间的区别是什么
  3. CSGO连接到任意服务器失败问题的解决方案(超详细)
  4. Talend 使用thttpRequest请求json数据,并使用tExtractJSONFields解析数据
  5. 中e管家普通人如何来理财
  6. iPhone 11 Pro上手:亚光玻璃手感好,拍照真快
  7. 计算机软件专业全球排名,全国高校按计算机软件专业排名列表
  8. CCS 快捷键查看和文字大小调整快捷键
  9. 视频怎么转换成gif,视频转gif步骤
  10. 抵制屠杀鲸类,关注自然生态。