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


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 相关文章推荐
js下用eval生成JSON对象
Sep 17 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
Nov 17 Javascript
将字符串中由空格隔开的每个单词首字母大写
Apr 06 Javascript
table行随鼠标移动变色示例
May 07 Javascript
jQuery获取节点和子节点文本的方法
Jul 22 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
Aug 01 Javascript
Jquery遍历select option和添加移除option的实现方法
Aug 26 Javascript
Jquery实现上下移动和排序代码
Oct 17 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
Jul 18 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 29 Javascript
layui 弹出层回调获取弹出层数据的例子
Sep 02 Javascript
vue 实现把路由单独分离出来
Aug 13 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
php shell超强免杀、减少体积工具实现代码
2012/10/16 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
vue插件实现v-model功能
2018/09/10 Javascript
详解一个基于react+webpack的多页面应用配置
2019/01/21 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
python操作CouchDB的方法
2014/10/08 Python
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
简单介绍Python的轻便web框架Bottle
2015/04/08 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
python3实现全角和半角字符转换的方法示例
2017/09/21 Python
Python当中的array数组对象实例详解
2019/06/12 Python
django框架两个使用模板实例
2019/12/11 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
美国知名生活购物网站:Goop
2017/11/03 全球购物
马耳他航空公司官方网站:Air Malta
2019/05/15 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
宠物店的创业计划书范文
2014/01/11 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
借名购房协议书范本
2014/10/06 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
上课说话检讨书
2015/01/27 职场文书