14、云函数

14、云函数14 云函数 1 云函数介绍 2 初始化云函数环境 3 新建云函数 4 云函数获取 openid5 云函数中声明使用的云环境 6 云函数获取数据 7 数据批量导入与导出 8 云函数请求数据和本地请求数据区别 9

大家好,欢迎来到IT知识分享网。

1. 云函数介绍

  云函数属于管理端,在云函数中运行的代码拥有不受限制的数据库读写权限和云文件读写权限。注意,云函数运行环境即是管理端,与云函数中传入的openid对应的微信用户是否是小程序的管理员、开发者无关。云函数返回数据条数上限为100条,运行在云端Node.js环境中,普通请求返回条数上限为20条且运行在小程序本地。

2.初始化云函数环境

  • 创建一个文件夹cloud,与pages平级
    在这里插入图片描述
  • 在project.config.json里面配置云函数所在目录为cloud。
    在其里面添加一行代码,如下图框中。

在这里插入图片描述

  • 然后点击保存,在cloud文件夹前图标带有云朵,表示云函数环境初始化成功。 在这里插入图片描述
  • 注意云函数环境要与app.js云环境初始化保持一致。
    在这里插入图片描述如果两者环境不一致的话,可以在选中cloud文件夹后鼠标右键修改当前环境。
    在这里插入图片描述

3.新建云函数

4.云函数获取openid

  • 传统写法:success 和fail,在想获取openid数据页面的js文件中写入如下代码。
// pages/demo05/demo05.js Page({ 
    / * 生命周期函数--监听页面加载 */ onLoad: function (options) { 
    //云函数的调用 let that = this wx.cloud.callFunction({ 
    name:'getData', success(res){ 
    that.setData({ 
    openid:res.result.openid }) console.log("请求云函数成功",res) }, fail(err){ 
    console.log("请求云函数失败",err) } }) } }) 
  • 箭头函数写法
// pages/demo05/demo05.js Page({ 
    / * 生命周期函数--监听页面加载 */ onLoad: function (options) { 
    //云函数的调用 wx.cloud.callFunction({ 
    name:'getData', }) .then(res =>{ 
    this.setData({ 
    openid:res.result.openid }) console.log("请求云函数成功",res) }) .catch(res =>{ 
    console.log("请求云函数失败",err) }) } }) 

5.云函数中声明使用的云环境

  • 方法一:直接写环境名,不提倡
cloud.init({ 
    env:'infodata-0gq' //云开发环境id }) 
  • 方法二:用变量代替环境名,提倡,设置API默认环境为当前所在环境。
cloud.init({ 
    env:cloud.DYNAMIC_CURRENT_ENV //云开发环境id }) 

6.云函数获取数据

  • 云函数本地获取数据方法代码不同之处
    在这里插入图片描述

7.数据批量导入与导出

  • 导出
    选好要导出的集合;
    在这里插入图片描述
    在这里插入图片描述json格式文件可以直接用记事本打开


  • 导入
    在json格式文件中写好数据。
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述数据导入成功

8.云函数请求数据和本地请求数据区别

// pages/demo05/demo05.js Page({ 
    / * 生命周期函数--监听页面加载 */ onLoad: function (options) { 
    //云函数的调用 wx.cloud.callFunction({ 
    name:'getData', }) .then(res =>{ 
    console.log("请求云函数成功",res) }) .catch(err =>{ 
    console.log("请求云函数失败",err) }) //本地获取数据 wx.cloud.database().collection('num').get() .then(res =>{ 
    console.log("本地请求数据成功",res) }) .catch(err =>{ 
    console.log("本地请求数据失败",err) }) } }) 

9.传递参数到云函数

// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ 
    env:cloud.DYNAMIC_CURRENT_ENV //云开发环境id }) // 云函数入口函数 exports.main = async (event, context) => { 
    return event.num+10 } 
// pages/demo06/demo06.js Page({ 
    onLoad: function (options) { 
    wx.cloud.callFunction({ 
    name:'autoAdd', data:{ 
    num:1 } }) .then(res =>{ 
    console.log("自增成功,结果为:",res) }) .catch(err =>{ 
    console.log("自增失败:",err) }) } }) 

10.云函数修改数据

在这里插入图片描述

// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ 
    env:cloud.DYNAMIC_CURRENT_ENV //云开发环境id }) // 云函数入口函数 通过event参数携带数据 exports.main = async (event, context) => { 
    return cloud.database().collection('num').doc(event.id) .update({ 
    data:{ 
    score:event.score } }) } 
<!--pages/demo05/demo05.wxml--> <view>ID: { 
   { 
   stu._id}} 成绩: { 
   { 
   stu.score}}</view> 更新学生成绩: <input bindinput="getNewScore"></input> <button bindtap="updateStu" type="primary">修改记录</button> 
// pages/demo05/demo05.js let score=0 let id='' Page({ 
    data: { 
    stu:{ 
   } }, onLoad: function (options) { 
    id = options.id, this.getItemDetail() }, getItemDetail(){ 
    wx.cloud.database().collection('num').doc(id).get() .then( res =>{ 
    console.log("商品详情页请求成功",res) this.setData({ 
    stu:res.data }) }) .catch( err =>{ 
    console.log('商品详情页请求失败',err) }) }, //获取待更新的成绩信息 getNewScore(e){ 
    score=e.detail.value }, updateStu(){ 
    console.log(score) if(score == ''){ 
    wx.showToast({ 
    icon:'none', title: '更新成绩为空了', }) }else{ 
    //云函数的调用 wx.cloud.callFunction({ 
    name:'updata', data:{ 
    //云函数中传递的参数 id:id, score:score } }) .then(res =>{ 
    console.log("云函数记录更新成功",res), this.getItemDetail() }) .catch(err =>{ 
    console.log("云函数记录更新失败",err) }) } } }) 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120001.html

(0)
上一篇 2025-11-01 16:15
下一篇 2025-11-01 16:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信