小程序云开发教程如何使用云函数实现点赞功能


Posted in Javascript onMay 18, 2019

本文我们就要使用高大上的云函数了,实现点赞功能

什么是云函数?

云函数 云函数即在云端(服务器端)运行的函数。 在物理设计上,一个云函数可由多个文件组成,占用一定量的CPU 内存等计算资源;各云函数完全独立;可分别部署在不同的地区。 … 当云函数被小程序端调用时,定义的代码会被放在Node.js 运行环境中执行。

新建的项目中其实有云函数的示例可以参考。

首先,我们在cloudfunctions 文件夹右键,新建一个nodeJs云函数, 然后命名为vote, 点击回车,等一会它会弹窗,告诉我们要安装云函数的环境, 但前提是你已经安装了node环境和npm。

小程序云开发教程如何使用云函数实现点赞功能

安装node可以直接去node的官方网站,下载一个msi文件,一路安装就可以了。
安装完node之后,其实默认是安装了npm的.
点击确定,等会它安装完成后,我们点击关闭命令行的窗口。

接下来, 在index.js里面添加:

vote: function(e){
 var arr = this.data.voteArr;
 var id = Number(e.currentTarget.dataset.index),
 D = this.data.datas;
 console.log(id)
 if (arr.indexOf(D[id].id) != -1){
 D[id].vote -= 1;
 arr.splice(arr.indexOf(D[id].id), 1)
 this.setData({
 datas: D,
 voteArr: arr
 })
 }else{
 arr.push(D[id].id)
 this.setData({
 voteArr: arr
 })
 if (id || id == 0) {
 D[id].zanUrl = this.data.zanIcon1
 D[id].vote = Number(D[id].vote) + 1
 }

 let data = {
 vote: Number(D[id].vote) + 1,
 id: D[id].id,
 userId: wx.getStorageSync('userId'),
 }
 console.log(data)

 wx.cloud.callFunction({
 name: 'vote',
 //点赞需要的参数:
 // 点赞数 +1
 // 该条的id
 data: { 
  vote: Number(D[id].vote) + 1,
  id: D[id].id,  
 },
 success: res => {
  wx.showToast({
  title: '点赞成功',
  })
  this.setData({
  datas: D
  })

 },
 fail: err => {
  wx.showToast({
  icon: 'none',
  title: '点赞失败',
  })
  console.error('[云函数] 调用失败:', err)
 }
 })
 }
 
 
 },

再接下来,我们编写云函数vote下面的index.js:

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


// 云函数入口函数
exports.main = async (event, context) => { 
//取得传过来的参数, 可以使用{vote,id } = event 更简洁
 var vote = event.vote, id = event.id;
 console.log('云函数zan成功', vote, id)

 // console.warn(data)

 try {
 return await db.collection('funnys').where({
 id: Number(id)
 }).update({
 data: {
 vote: vote
 },
 success: res => {
 console.log('云函数成功', vote, id)
 
 },
 fail: e => {
 console.error(e)
 }
 })
 } catch (e) {
 console.error(e)
 }

}

编写好后,我们右键vote文件夹, 点击上传云函数,上传完成后就可以测试了。

点击赞, 我们发现图片会变成黄色的赞icon了,这个是通过this.setData 替换的, 没有使用后台的数据库。
之后, 会调用到云函数vote, 如果成功, 会有一个toast显示,点赞成功;如果失败, 控制台也会提示相关的错误。

那么,到此为止,点赞功能就基本完成了, 请看:详细代码

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

Javascript 相关文章推荐
用Jquery.load载入页面实现局部刷新
Jan 22 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
Sep 22 Javascript
在JavaScript中使用NaN值的方法
Jun 05 Javascript
jQuery使用$.ajax提交表单完整实例
Dec 11 Javascript
全面了解javascript三元运算符
Jun 27 Javascript
微信小程序实现滑动删除效果
May 19 Javascript
微信小程序与php 实现微信支付的简单实例
Jun 23 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
详解Vue中localstorage和sessionstorage的使用
Dec 22 Javascript
基于Swiper实现移动端页面图片轮播效果
Dec 28 Javascript
微信小程序block的使用教程
Apr 01 Javascript
vue如何清除浏览器历史栈
May 25 Vue.js
微信小程序实现元素渐入渐出动画效果封装方法
May 18 #Javascript
微信小程序收货地址API兼容低版本解决方法
May 18 #Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 #Javascript
小程序云开发之用户注册登录
May 18 #Javascript
小程序云开发实现数据库异步操作同步化
May 18 #Javascript
微信小程序云开发之数据库操作
May 18 #Javascript
微信小程序云开发如何使用云函数生成二维码
May 18 #Javascript
You might like
写一个用户在线显示的程序
2006/10/09 PHP
用PHP和ACCESS写聊天室(三)
2006/10/09 PHP
浅谈PHP中类和对象的相关函数
2017/04/26 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
js 获取坐标 通过JS得到当前焦点(鼠标)的坐标属性
2013/01/04 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
2015/03/25 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
Highcharts入门之简介
2016/08/02 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
javaScript中"=="和"==="的区别详解
2018/03/16 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
Python文件读取的3种方法及路径转义
2015/06/21 Python
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
python实现字符串和字典的转换
2018/09/29 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
python里运用私有属性和方法总结
2019/07/08 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
Python的互斥锁与信号量详解
2019/09/12 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
Python新手学习装饰器
2020/06/04 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
董事长岗位职责
2013/11/30 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
幼儿园六一儿童节活动方案
2014/08/26 职场文书
学校勤俭节约倡议书
2015/04/29 职场文书
Django使用channels + websocket打造在线聊天室
2021/05/20 Python