云函数---记微信小程序云开发过程

1.云函数

  • 云函数即在云端(服务器端)运行的函数。
  • 一个云函数的写法与一个在本地定义的 JavaScript 方法无异,代码运行在云端 Node.js 中。

1.1 云函数必备的基本环境部署

  1. 开通微信小程序云开发

  2. 新建一个目录,命名随意。这里为cloud

  3. 在project.config.json中:

      "cloudfunctionRoot": "/cloud"
    

    这里需要注意,/cloud中的cloud是2.步骤中新建的目录,名称要严格一致
    这行代码的作用比较明显,就是把我们2.中新建的目录,带上小云彩,连通云端。

  4. 云开发环境初始化。在app.js的onLaunch中:

//云开发环境初始化
    wx.cloud.init({
      env:"cloud-ypgou-id"
    })

至此,要写云函数的基本部署,已经实现。

2.第一个云函数Add(a+b)

大致流程:

  • 在小程序index.wxml调用Add功能(一个按钮开关),
  • index.js中转前者的调用,并实现云端函数的响应
  • 云端函数响应完毕之后,返回结果,到控制台。

具体步骤:

  1. 在带有云彩标识的cloud目录(以下统称:云标cloud)中,新建Node.js云函数,命名随意。这里为add

  2. 在app.json的“page”内部第一行位置,注入一行代码,用于新建一个专用的首页(此步骤看个人习惯,非必须):

     "pages/index-cloud/index-cloud",
    
  3. 实现云函数主体内容。在Add的index.js中,把入口函数内部的默认内容清除掉,写入:

     // 云函数入口函数
     exports.main = async (event, context) => {
       a = event.a;
       b = event.b;
       return a + b;
     }
    
  4. 将云函数Add,上传并部署到云端:不安装依赖。

  5. 在index-cloud.wxml中,写入:

     <input placeholder="输入a值:" bindinput="number_a"></input>
     <input placeholder="输入b值:" bindinput="number_b"></input>
     <button bindtap="useAddfunction" type="primary">调用云函数add</button>
    
  6. 在index-cloud.js中,写入:

    let getNumber_a=""
    let getNumber_b=""
    
    Page({
    number_a(a){
      getNumber_a=  Number(a.detail.value);
    
    },
    number_b(b){
      getNumber_b = Number(b.detail.value);
     
    },
     
    Add(){ 
      wx.cloud.callFunction({
        name:"Add",
        data:{
          a : getNumber_a,
          b : getNumber_b
        },
        success(res){
          console.log("计算完成",res)
        },
        fail(err){
          console.log("计算失败",err) 
        }
      })
    }
    })
    
  7. 直接运行,就可以了。

3.第二个云函数 getopenid

会写第一个a+b,就表明已经熟悉了云函数的书写方式与细化的流程了,那么,获取openid也就轻而易举了。

1.新建云函数 ,命名为 getOpenIdCloudFunction

2.在index.wxml中,写入:
<button bindtap="getOpenId" type="primary">点击此处获取openID</button>

代码的效果如下,是一个按钮:点击此处获取openID

3.在 getOpenIdCloudFunction的index.js中,写入:

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  return wxContext.OPENID;
  
}

4.上传并部署以下云函数,就可以执行了。

4.第三个云函数,获取云端名为“list”的数据库全部数据。

  1. 在云标Cloud下,新建Node.js文件,命名为getInformation

  2. 在index-clod.wxml中,写入:
    <button bindtap="getCloudinformation" type="primary">点击此处获取数据</button>

  3. 在index-cloud.js中,写入:

      getCloudinformation(){
         wx.cloud.callFunction({
           name: "getInformation",
           success(res){
             console.log("获取数据成功",res);
           },
           fail(err){
             console.log("获取数据失败",err);
           }
           })
       }
    
  4. 完善云函数主体内容。在getInformation的index.js中,写入:

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

至此,此函数功能已经实现。

4.1 数据库api调取云端数据 VS 云函数调取云端数据

对比数据库api访问云端数据来说,云函数访问云数据库,不受权限设置的影响。而数据库api访问云数据库的话,一旦云端权限禁止用户访问,则访问失败。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北溟南风起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值