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


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 20 Javascript
jquery插件制作简单示例说明
Feb 03 Javascript
Jquery判断form表单数据是否变化
Mar 30 Javascript
Bootstrap实现提示框和弹出框效果
Jan 11 Javascript
VUE实现日历组件功能
Mar 13 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
Apr 27 Javascript
jQuery选择器之子元素过滤选择器
Sep 28 jQuery
jquery应用实例分享_实现手风琴特效
Feb 01 jQuery
基于vue 动态加载图片src的解决方法
Feb 05 Javascript
详解Angular6 热加载配置方案
Aug 18 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
Dec 24 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
Sep 11 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.MVC的模板标签系统(二)
2006/09/05 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
php常用正则函数实例小结
2016/12/29 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
2013/05/31 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
基于javascript实现图片左右切换效果
2016/01/25 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
微信小程序云开发详细教程
2019/05/16 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
ubuntu上安装python的实例方法
2019/09/30 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
欧铁通票官方在线销售网站:Eurail.com
2017/10/14 全球购物
九年级英语教学反思
2014/01/31 职场文书
大堂副理的岗位职责范文
2014/02/17 职场文书
幼儿园教学随笔感言
2014/02/23 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
电力安全事故反思
2014/04/27 职场文书
2016元旦晚会主持词
2015/07/01 职场文书