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


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 相关文章推荐
JavaScript返回上一页的三种方法及区别介绍
Jul 04 Javascript
javascript自定义in_array()函数实现方法
Aug 03 Javascript
jQuery实现选中弹出窗口选择框内容后赋值给文本框的方法
Nov 23 Javascript
js中利用tagname和id获取元素的方法
Jan 03 Javascript
JS中JSON对象和String之间的互转及处理技巧
Apr 06 Javascript
canvas实现手机端用来上传用户头像的代码
Oct 20 Javascript
JS作用域深度解析
Dec 29 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
Nov 08 Javascript
vue + element-ui的分页问题实现
Dec 17 Javascript
如何获取vue单文件自身源码路径
May 06 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
Mar 24 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
PHP环境搭建最新方法
2006/09/05 PHP
浅析PHP绘图技术
2013/07/03 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
PHP中Memcache操作类及用法实例
2014/12/12 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
js获取div高度的代码
2008/08/09 Javascript
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
jquery blockUI 遮罩不能消失与不能提交的解决方法
2011/09/17 Javascript
解析prototype,JQuery中跳出each循环的方法
2013/12/12 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
Javascript函数的参数
2015/07/16 Javascript
JS重载实现方法分析
2016/12/16 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
JS中使用new Option()实现时间联动效果
2018/12/10 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
python双向链表实现实例代码
2013/11/21 Python
教你用Python写安卓游戏外挂
2018/01/11 Python
python实时监控cpu小工具
2018/06/21 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
python实现名片管理器的示例代码
2019/12/17 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
365 Tickets英国:全球景点门票
2019/07/06 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
2014年电厂工作总结
2014/12/04 职场文书
2014年医务科工作总结
2014/12/18 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
pytorch 实现在测试的时候启用dropout
2021/05/27 Python
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记