微信小程序云开发

** 云函数**

  • 云函数即在云端(服务器端)运行的函数。在物理设计上,一个云函数可由多个文件组成,占用一定量的 CPU
    内存等计算资源;各云函数完全独立;可分别部署在不同的地区。开发者无需购买、搭建服务器,只需编写函数代码并部署到云端即可在小程序端调用,同时云函数之间也可互相调用。

  • 一个云函数的写法与一个在本地定义的 JavaScript 方法无异,代码运行在云端 Node.js
    中。当云函数被小程序端调用时,定义的代码会被放在 Node.js 运行环境中执行。

  • 云开发的云函数的独特优势在于与微信登录鉴权的无缝整合 。当小程序端调用云函数时,云函数的传入参数中会被注入小程序端用户的
    openid,开发者无需校验 openid 的正确性因为微信已经完成了这部分鉴权,开发者可以直接使用该 openid。

    参考案例
    创建
    在这里插入图片描述

云函数创建
在云函数根目录上右键,在右键菜单中,可以选择创建一个新的 Node.js 云函数,名字为add
编写好云函数,需要右键 上传并部署
名字为add

云数据
点击云开发然后选择数据库
在这里插入图片描述
在这里插入图片描述

云函数调用

云函数的传入参数有两个,一个是 event 对象,一个是 context 对象。
event指的是触发云函数的事件,当小程序端调用云函数时,event 就是小程序端调用云函数时传入的参数,外加后端自动注入的小程序用户的 openid 和小程序的 appid。
context 对象包含了此处调用的调用信息和运行状态,可以用它来了解服务运行的情况。在模板中也默认 require 了 wx-server-sdk,
wx-server-sdk这是一个帮助我们在云函数中操作数据库、存储以及调用其他云函数的微信提供的库

// 云函数入口文件
const cloud = require('wx-server-sdk')
 
cloud.init()
 
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
 
  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}

调用云函数

wx.cloud.callFunction({
  // 云函数名称
  name: 'add',
  // 传给云函数的参数
  data: {
    a: 1,
    b: 2,
  },
})
.then(res => {
  console.log(res.result) // 3
})
.catch(console.error)

获取数据

// 云函数入口文件
const cloud = require('wx-server-sdk') 
 
cloud.init()
db = cloud.database();
 
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  // 获取数据数据
  res= await db.collection("book").get();
  return {
  // 返回数据库结构
    books:res.data,
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }

调用数据库

 wx.cloud.callFunction({
      name:"getBook"
    })
    .then(res=>{
      console.log(res.result);  
    })
    wx.cloud.callFunction({
      name:"add",
      data:{a:1,b:2}
    })
    .then(res=>{
      console.log(res.result)
    })
    .catch(err=>console.error(err))}

参考链接微信开发文档

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值