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


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 相关文章推荐
使用 Node.js 做 Function Test实现方法
Oct 25 Javascript
js 与 php 通过json数据进行通讯示例
Mar 26 Javascript
JS的事件绑定深入认识
Jun 26 Javascript
jQuery实现的导航条切换可显示隐藏
Oct 22 Javascript
JS文字球状放大效果代码分享
Aug 19 Javascript
Bootstrap模块dropdown实现下拉框响应
May 22 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
Aug 15 Javascript
Javascript之面向对象--接口
Dec 02 Javascript
vuejs 单文件组件.vue 文件的使用
Jul 28 Javascript
微信小程序自动客服功能
Nov 02 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
Sep 11 Javascript
vue实现树状表格效果
Dec 29 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
PHP伪造referer实例代码
2008/09/20 PHP
使用php来实现网络服务
2009/09/15 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
php实现微信发红包功能
2018/07/13 PHP
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
Python实现类继承实例
2014/07/04 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
python调用外部程序的实操步骤
2019/03/04 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
Python秒算24点实现及原理详解
2019/07/29 Python
Python中turtle库的使用实例
2019/09/09 Python
Python利用命名空间解析XML文档
2020/08/10 Python
Python内置函数property()如何使用
2020/09/01 Python
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
六查六看剖析材料
2014/02/15 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
2014年销售工作总结
2014/12/01 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
2015年父亲节寄语
2015/03/23 职场文书
详解MySQL的半同步
2021/04/22 MySQL
php7中停止php-fpm服务的方法详解
2021/05/09 PHP
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
Mysql数据库group by原理详解
2022/07/07 MySQL