微信小程序云开发

无服务开发 serveless
可以保持两个独立环境(开发测试+现网)
能力
微信小程序云开发_第1张图片
微信图片_20190723202604.png
  1. 数据库(JSON 数据库)


    微信小程序云开发_第2张图片
    微信图片_20190723203038.png

    数据库API

// 1. 获取数据库引用
const db = wx.cloud.database()
// 2. 构造查询语句
// collection 方法获取一个集合的引用
// where 方法传入一个对象,数据库返回集合中字段等于指定值的 JSON 文档。API 也支持高级的查询条件(比如大于、小于、in 等),具体见文档查看支持列表
// get 方法会触发网络请求,往数据库取数据
db.collection('books').where({
  publishInfo: {
    country: 'United States'
  }
}).get({
  success: function(res) {
  // 输出 [{ "title": "The Catcher in the Rye", ... }]
  console.log(res)
 }
})
  1. 云存储
    在小程序中可以轻松调用云存储的上传下载能力(wx.cloud.downloadFile wx.cloud.uploadFile)
// 让用户选择一张图片
wx.chooseImage({
  success: chooseResult => {
    // 将图片上传至云存储空间
    wx.cloud.uploadFile({
      // 指定上传到的云路径
      cloudPath: 'my-photo.png',
      // 指定要上传的文件的小程序临时文件路径
      filePath: chooseResult.tempFilePaths[0],
      // 成功回调
      success: res => {
        console.log('上传成功', res)
      },
    })
  },
})
  1. 云函数
    云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。
    云函数的运行环境是 Node.js,因此我们可以使用 npm 安装第三方依赖。
    云函数需要定时 / 定期执行,也就是定时触发,我们可以使用云函数定时触发器。

优势:省去了复杂的鉴权机制
小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内使用 wx-server-sdk 提供的 getWXContext 方法获取到每次调用的上下文(appidopenid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。

优势:云函数可以调用小程序提供的开放接口的能力,例如下发模板消息,获取小程序码等等。(微信自动鉴权,省去复杂鉴权逻辑)

示例代码片段:
云函数:

// index.js 是入口文件,云函数被调用时会执行该文件导出的 main 方法
// event 包含了调用端(小程序端)调用该函数时传过来的参数,同时还包含了可以通过 getWXContext 方法获取的用户登录态 `openId` 和小程序 `appId` 信息
const cloud = require('wx-server-sdk')
exports.main = (event, context) => {
  let { userInfo, a, b} = event
  let { OPENID, APPID } = cloud.getWXContext() // 这里获取到的 openId 和 appId 是可信的
  let sum = a + b

  return {
    OPENID,
    APPID,
    sum
  }
}

小程序端:

wx.cloud.callFunction({
  // 需调用的云函数名
  name: 'add',
  // 传给云函数的参数
  data: {
    a: 12,
    b: 19,
  },
  // 成功回调
  complete: console.log
})
// 当然 promise 方式也是支持的
wx.cloud.callFunction({
  name: 'add',
  data: {
    a: 12,
    b: 19
  }
}).then(console.log)
云开发控制台
微信小程序云开发_第3张图片
console_main.5efd4134.png
计费
微信小程序云开发_第4张图片
image.png

你可能感兴趣的:(微信小程序云开发)