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


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 相关文章推荐
读jQuery之十三 添加事件和删除事件的核心方法
Aug 23 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
AngularJS入门教程之服务(Service)
Jul 27 Javascript
第一次动手实现bootstrap table分页效果
Sep 22 Javascript
炫酷的js手风琴效果
Oct 13 Javascript
原生JS仿QQ阅读点击展开、收起效果
Mar 08 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
Sep 10 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
Aug 22 Javascript
jQuery选择器之基本选择器用法实例分析
Feb 19 jQuery
vue select 获取value和lable操作
Aug 28 Javascript
jQuery实现回到顶部效果
Oct 19 jQuery
微信小程序将页面按钮悬浮固定在底部的实现代码
Oct 29 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
合作指挥官:孟斯克
2020/03/16 星际争霸
PHP 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
php 短链接算法收集与分析
2011/12/30 PHP
PHP中Memcache操作类及用法实例
2014/12/12 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
Laravel框架模板加载,分配变量及简单路由功能示例
2018/06/11 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
js获取当月最后一天实例代码
2013/11/19 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
javascript中parseInt()函数的定义和用法分析
2014/12/20 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
vue分页组件table-pagebar使用实例解析
2020/11/15 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
vue router总结 $router和$route及router与 router与route区别
2019/07/05 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
python的unittest测试类代码实例
2017/12/07 Python
python数据化运营的重要意义
2019/11/25 Python
Django与pyecharts结合的实例代码
2020/05/13 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
《再别康桥》教学反思
2014/02/12 职场文书
授权委托书范本
2014/04/03 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
车间核算员岗位职责
2014/07/01 职场文书
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js