微信小程序云开发———云函数

1.云函数环境配置

在目录中添加一个cloud文件夹与pages平级

并在project.config.json文件中配置云函数所在目录cloud/

保存后cloud文件夹会出现一个云朵的形状,并且需要我们进行同步环境列表

 

 因为作者有其他的云开发环境,所以正常来说同学们新建的cloud中只有一个开发环境

2.创建云函数

在新建的cloud中,开始新建云函数文件

在functions中新建一个node.js云函数文件,命名为cloudFunction

 新建cloudFunction,需要等待几秒,等cloudFunction文件上传更新完成后即可,上传更新完毕后cloudFunction文件夹的图案就会发生改变

 在新建的cloudFunction的index.js文件中配置云函数的环境

// 第一种配置方式
// cloud.init({
//     env: 'xxx'  //云开发环境id
// })
// 第二种配置方式
cloud.init({env: cloud.DYNAMIC_CURRENT_ENV  //云开发环境id
})

推荐使用DYNAMIC_CURRENT_ENV常量,标志当前所在环境,注意该值不是当前所在环境 ID 的字符串,其值等价于 Symbol.for('DYNAMIC_CURRENT_ENV'),是用于标志当前所在环境的。如在 init 中如果给 env 参数传该常量值,则后续的 API 请求会自动请求当前所在环境的云资源,如云函数 A 当前所在环境是 test-123,则其接下来请求数据库、文件存储、云函数时都默认请求环境 test-123 的数据库、文件存储、云函数。

[参考文档](https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/constant/constant.html#%E7%A4%BA%E4%BE%8B)

3.使用云函数对数据库进行增删查改

3.1数据库使用云函数的查询方法

首先配置云函数的入口函数

// 云函数入口函数
exports.main = async (event, context) => {return cloud.database().collection('students').get()
}

在云函数入口函数中的配置,与小程序直接调用云数据库的固定写法差不多,只是在node.js中不能标识wx,因此原有的wx.cloud.database().collection(' ')变为cloud.database().collections(' ')

每一次对云函数文件的改动不仅需要ctrl+s保存下来,而且需要重新部署云函数文件,只要是云函数文件的改动都要重新部署,不只是index.js,只有重新部署,代码才可以正常运行。

 下面我们分别将云函数调用数据和小程序直接调用数据进行一个对比

云函数调用数据

    // 传统的success和fail(第一种)wx.cloud.callFunction({  //这里变成.callFunction,不再是.database().collection('')name:'cloudFunction',  //云函数的名字success(res){console.log('请求成功',res)that.setData({openid:res.result.openid})},fail(err){console.log('请求失败',err)}})// 用promise写法then和catch(第二种)wx.cloud.callFunction({name:'cloudFunction'  //云函数的名字}).then(res=>{  //云函数返回100条数据console.log('请求成功',res)this.setData({openid:res.result.openid})}).catch(err=>{console.log('请求失败',err)})

小程序直接调用数据

wx.cloud.database().collection('students').get().then(res=>{console.log('请求数据成功',res)}).catch(err=>{console.log('请求数据失败',err)})

这两种方法都可以直接调出数据,那区别在哪里呢

云函数即在云端(服务器端)运行的函数。在物理设计上,一个云函数可由多个文件组成,占用一定量的 CPU 内存等计算资源;各云函数完全独立;可分别部署在不同的地区。开发者无需购买、搭建服务器,只需编写函数代码并部署到云端即可在小程序端调用,同时云函数之间也可互相调用。
一个云函数的写法与一个在本地定义的 JavaScript 方法无异,代码运行在云端 Node.js 中。当云函数被小程序端调用时,定义的代码会被放在 Node.js 运行环境中执行。我们可以如在 Node.js 环境中使用 JavaScript 一样在云函数中进行网络请求等操作,而且我们还可以通过云函数后端 SDK 搭配使用多种服务,比如使用云函数 SDK 中提供的数据库和存储 API 进行数据库和存储的操作,这部分可参考数据库和
存储后端 API 文档。
云开发的云函数的独特优势在于与微信登录鉴权的无缝整合。当小程序端调用云函数时,云函数的传入参数中会被注入小程序端用户的 openid,开发者无需校验 openid 的正确性因为微信已经完成了这部分鉴权,开发者可以直接使用该 openid。

3.2数据库使用云函数添加数据

新建一个添加数据的云函数addFunction,并且配置好云开发环境

 

// 云函数入口函数
exports.main = async (event, context) => {return cloud.database().collection('students').add({data:{name:event.name,sex:event.sex,age:event.age}})
}

 且在页面js进行调用

 

 wx.cloud.callFunction({name:'addFunction',data:({name:"pohao",sex:"male",age:26})}).then(res=>{console.log('添加成功',res)}).catch(err=>{console.log('添加失败',err)})

 切记一定要重新部署云函数!!!

运行成功后查看云数据库里是否新添加到pohao这条数据

 

3.3数据库使用云函数删除数据 

 

// 云函数入口文件
const cloud = require('wx-server-sdk')loud.init({env: cloud.DYNAMIC_CURRENT_ENV  //云开发环境id
})const db = cloud.database()// 云函数入口函数
exports.main = async (event, context) => {var id = event.ids //从js文件里面传一个id进行删除return await db.collection('address').doc(id).remove()
}
removeFunction() {//获取要删除数据的Idconsole.log(this.data.deleteId)var that = this;wx.cloud.callFunction({name: "removeFunction",data: {id: that.data.deleteId},}).then(res=>{console.log('删除成功',res)}).catch(err=>{console.log('删除失败',err)})}

3.4数据库使用云函数修改数据 

// 云函数入口文件
const cloud = require('wx-server-sdk')loud.init({env: cloud.DYNAMIC_CURRENT_ENV  //云开发环境id
})const db = cloud.database()// 云函数入口函数
exports.main = async (event, context) => {var id = event.ids //从js文件里面传一个id进行修改return await db.collection('address').doc(id).updata({name:event.name,sex:event.sex,age:event.age})
}
updataFunction() {//获取要修改数据的Idconsole.log(this.data.deleteId)var that = this;wx.cloud.callFunction({name: "updataFunction",data: {id: that.data.deleteId,name:"",sex:"",age:""},}).then(res=>{console.log('修改成功',res)}).catch(err=>{console.log('修改失败',err)})}

 若有其他问题欢迎私信!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/69966.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序消息推送

简介 微信小程序发送消息推送到用户微信上 基础流程 用户登录 :获取微信提供的openid 开发者去微信公众平台申请模板:获得模板id授权消息推送:在小程序中调用wx.requestSubscribeMessage方法成功后将数据保存到后台 消息推送表 中在需要发送…

再度警惕!AI“灭霸”要来了?Hinton、Bengio等300余大佬联名上书

来源:机器之心 人工智能存在「灭绝」级别的风险,未来的系统可能像核武器一样致命。本周二,著名的人工智能学者、科技公司创始人团结了起来,发出呼吁。 公开信地址:https://www.safe.ai/statement-on-ai-risk 前有马斯克…

【探索人工智能】我与讯飞星火认知大模型的对话

文章目录 讯飞星火认知大模型的地址概要讯飞星火认知大模型的发展历程讯飞星火认知大模型的主页利用讯飞星火大模型解决一些基本的数学问题讯飞星火认知大模型与OpenAI,ChatGPT没有关系!让讯飞星火认知大模型编写传奇代码hello world小结 讯飞星火认知大模型的地址 …

在Ubuntu22.04里安装脉冲星信号处理工具----Pulsar软件包

在Ubuntu22.04安装Pulsar软件包 1.ubuntu 22.04 安装gcc-7、g7(用来编译后续软件) 1.1 添加镜像: 打开源镜像文件 sudo vim /etc/apt/sources.list在最后一行添加如下内容: deb [archamd64] http://archive.ubuntu.com/ubunt…

6-2. 实战项目:足球运动员分析

足球运动员分析 1. 项目背景 当前,足球运动是最受欢迎的运动之一(也可以说没有之一)。 我们的任务,就是在众多的足球运动员中,发现统计一些关于足球运动员的共性,或某些潜在的规律。也是好玩。 2. 数据…

【案例】足球运动员分析

文章目录 足球运动员分析案例需求数据集程序实现1. 导入相关库2. 加载相关数据集3. 数据探索与清洗3.1. 缺失值处理3.2. 异常值处理处理3.3. 重复值处理 4. 身高与体重处理5. 运动员身高,体重,评分信息分布6. 左脚与右脚选手在数量上是否存在偏差7. 从球…

足球运动员分析

数据集 数据集 背景: 我们关注足球运动员的如下内容: 足球运动员是否受出生日期的影响?左撇子适合踢足球吗?足球运动员的号码是否与位置有关?足球运动员的年龄与能力具有怎样的关联? 哪些技能会对足球运…

解析波士顿动力Handle机器人背后的技术(附PPT+视频)

[转] http://www.leiphone.com/news/201703/URrR8CG2tmtghNDl.html 导语:Boston Dynamics 在机器人动力方面堪称翘楚,其由双足或多足机器人组成的机器人天团总是时不时能给我们带来惊喜。上周,Boston Dynamics 又发布了一段视频,并…

解析波士顿Handle机器人背后的技术

在斗鱼直播平台,浙大李超博士的公开课分享了关于handle的技术细节,解析波士顿Handle机器人背后的技术,观察敏锐,思路清晰。 内容介绍了波士顿动力公司的历代4足和2足机器人的开发历史。并结合李超的专业重点讲解了腿的细节。 李…

开源四足机器人 附设计图及代码

斯坦福学生机器人俱乐部(Stanford Student Robotics club)Extreme Mobility 团队最近迎来了一名新成员——一个名为 Stanford Doggo 的四足机器人。这个机器人能跳 1 米多高,还能表演后空翻。与其他四足机器人动辄上万美元的成本不同&#xf…

ROS2机器人笔记21-03-14

ROS会议和活动: 如果对机器人技术感兴趣,但是看不到任何适合兴趣的项目,那么可能还需要考虑将其应用于同级组织中,例如OpenCV和MoveIt! 核心是各种应用和ROS2的逐渐普及 GPU运算越来越主流,Nvidia Jetson…

波斯顿动力机器人“特效专辑”

关注星标公众号,不错过精彩内容 作者 | strongerHuang 公众号 | strongerHuang 波斯顿动力机器人的视频为啥那么火? 首先,他们机器人本身很牛逼,能完成各种高难度动作,拍出来的视频自然很多人关注。 其次,有…

清华2019最新AI发展报告出炉!400页干货,13大领域一文看懂

2019-12-08 20:36:36 当前,人工智能正处在爆发期。我国在人工智能领域的科学技术研究和产业发展起步稍晚,但在最近十余年的时间里抓住了机遇,进入了快速发展阶段。在这个过程中, 技术突破和创造性高端人才对人工智能的发展起着至…

ROS机器人培训基地和暑期学校证书样例

初级工程师证书(非高清): 初级师资证书(非高清): 为了鼓励学生朋友参与ROS机器人暑期学校,我也参加了并完成了所有任务,证书样本: 2021年(非高清&#xff09…

专业的机器人资讯与太空中的ROS

参考:www.therobotreport.com Open Robotics正在与由 Jeff Bezos 创立的亚轨道航天公司Blue Origin和 NASA 合作开发 Space ROS。Space ROS 是 ROS 2 的一个版本,旨在满足航空航天软件在用于任务之前必须满足的验证和确认要求。 机器人操作系统 (ROS) 已…

机器人介绍、应用、前景

机器人介绍、应用、前景 1 介绍1.1 定义1.2 作用1.3 发展历程1.4 分类1.5 三大顾虑1.6 前景 2 种类工业机器臂协作机械臂工业移动机器人复合机器人扫地机器人服务机器人机器狗人形机器人无人机 3 技术3.1 机器人学分类3.2 功能分类3.2.1 感知3.2.2 决策3.2.3 执行AGV减震机构减…

波士顿动力机器人解锁跑酷新技能,凭借感知驱动技术适应技能

编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 波士顿动力开发负责人为大家解读了 Atlas 能够快速越过具有一定倾斜度的障碍物、执行快速转身、跳跃等动作背后的技术。 Atlas 机器人首次完成了复杂的障碍赛。 复杂的障碍赛在波士顿动力公司总部二楼…

算法高级(46)-波士顿动力机器人ATLAS

一、引言 如果说阿尔法狗是对人类智力的碾压,那么,波士顿动力研发的机器人,正在挑战的是仿生学。 波士顿动力公司(Boston Dynamics)一致在专注于机器人的研发,每一次波士顿动力放出视频都会引起网友的围观…

自研机器人控制系统,挑战波士顿动力机器人

自研机器人协调控制系统,挑战部分波士顿动力实验效果 一.系统简介功能使用实验 二.详细实验解读波士顿动力近似试验1:空间定点自定义试验1:太极云手自定义试验2:醉鬼自定义试验3:边转边走自定义试验4:平移自…

客户案例|保险行业借助智能外呼充分结合业务需求和实际应用场景快速筛选客户

保险行业整体仍然延续稳步发展势头,保险产品结构不断优化;人身险行业原保费收入增速有所放缓;受宏观经济不断恢复企稳及非车险政策支持推动影响下,财产险行业保费收入增速有所加快;人身险及财产险公司健康险类产品均呈…