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


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 相关文章推荐
WordPress 插件——CoolCode使用方法与下载
Jul 02 Javascript
基于jquery的页面划词搜索JS
Sep 14 Javascript
jQuery $.get 的妙用 访问本地文本文件
Jul 12 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
Jan 27 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
May 17 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
Feb 25 Javascript
微信小程序 PHP后端form表单提交实例详解
Jan 12 Javascript
Vue.js自定义指令的用法与实例解析
Jan 18 Javascript
关于vue.extend和vue.component的区别浅析
Aug 16 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
Nov 26 Javascript
layer扩展打开/关闭动画的方法
Sep 23 Javascript
详解React中共享组件逻辑的三种方式
Feb 02 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
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采用curl模仿用户登陆新浪微博发微博的方法
2014/11/07 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
javascript Ext JS 状态默认存储时间
2009/02/15 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
JavaScript实现图片滑动切换的代码示例分享
2016/03/06 Javascript
javascript 四十条常用技巧大全
2016/09/09 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
星球大战与Python之间的那些事
2016/01/07 Python
Python实现的计数排序算法示例
2017/11/29 Python
python+pyqt5实现图片批量缩放工具
2019/03/18 Python
利用pandas合并多个excel的方法示例
2019/10/10 Python
后端开发使用pycharm的技巧(推荐)
2020/03/27 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
Python 实现微信自动回复的方法
2020/09/11 Python
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
欧舒丹比利时官网:L’OCCITANE比利时
2017/04/25 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
建筑实习自我鉴定
2013/10/18 职场文书
总经理的岗位职责
2014/02/23 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
交通事故被告答辩状
2015/05/22 职场文书
党性修养心得体会2016
2016/01/21 职场文书