Aiden's blog Aiden's blog
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • JavaScript教程
    • JavaScript高级程序设计
    • ES6 教程
    • Vue
    • Vue3.0
    • React
    • TypeScript 从零实现 axios
    • Git
    • TypeScript
    • JS设计模式总结
    • 小程序
    • 小程序云开发
    • Echarts
    • 微前端
    • H5
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 搜索引擎
  • ES系列
  • 经典面试题
  • 知识点总结
  • uni-app
  • 算法
  • Vue3实战
  • 小程序chatgpt
  • 小程序配网流程
  • 程序WIFI配网
  • 小程序WebSocket
  • H5 WebSocket
  • H5 TTS
  • Vue3实现OSS存储
  • 大文件分片上传
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Aiden Wu

前端界的小学生
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • JavaScript教程
    • JavaScript高级程序设计
    • ES6 教程
    • Vue
    • Vue3.0
    • React
    • TypeScript 从零实现 axios
    • Git
    • TypeScript
    • JS设计模式总结
    • 小程序
    • 小程序云开发
    • Echarts
    • 微前端
    • H5
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 搜索引擎
  • ES系列
  • 经典面试题
  • 知识点总结
  • uni-app
  • 算法
  • Vue3实战
  • 小程序chatgpt
  • 小程序配网流程
  • 程序WIFI配网
  • 小程序WebSocket
  • H5 WebSocket
  • H5 TTS
  • Vue3实现OSS存储
  • 大文件分片上传
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • JavaScript文章

  • Vue文章

  • 学习笔记

    • JavaScript教程
    • JavaScript高级程序设计
    • ES6 教程
    • Vue
    • React
    • TypeScript 从零实现 axios
    • Git
    • TypeScript笔记
    • 小程序笔记
    • 小程序云开发
      • 配置云开发环境
      • 云开发初始化
      • 云数据库
      • 云函数获取数据库
      • 云存储
      • 云函数获取openid
    • Vue3
    • JS设计模式总结笔记
    • Echarts
    • 微前端
    • H5
  • 前端
  • 学习笔记
wushengxin
2021-08-03
目录

小程序云开发

# 云开发

  • 使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。
  • 云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。
  • 注意权限配置:所有的云开发都设置为所有用户可见。

# 配置云开发环境

  • 先创建文件夹cloud
  • 配置project.config,json文件
  • 之后文件夹有朵云
"cloudfunctionRoot": "cloud/",
1

# 云开发初始化

  • 在cloud文件夹下创建好要使用的云函数,直接创建文件夹就好了
  • 写在app.js的onLaunch方法中
//云开发环境的初始化
wx.cloud.init({
  env: "abc-7g742zsa5e0d63a6",
  traceUser: true
})
1
2
3
4
5

# 云数据库

  • 云数据库最多只能请求20条数据
  • get获取数据库中的数据
  • add添加数据
//获取数据库list表
const DB = wx.cloud.database().collection("list")
//获取数据库中的数据
  DB.get({
    success: res => {
      console.log("请求成功", res)
      this.setData({
        dataList: res.data
      })
      console.log(this.data.dataList)
    },
    fail: err => {
      console.log("请求失败", res)
    }
  })
// 添加意见信息到数据库list表
  DB.add({
    data: {
      avatarUrl: that.data.avatarUrl,
      name: that.data.nickName,
      content: that.data.content,
      date: that.data.dateTime
    }, success(res) {
      console.log("添加成功", res)
    }, fail(err) {
      console.log("添加失败", err)
    }
  })
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 云函数获取数据库

  • 云函数获取数据库的数据最多能请求100条数据
  • 新建node.js云函数,云函数的js文件,例如文件名为getList
  • 最后还要云端安装依赖
// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  //通过时间的先后顺序检索
  //return result = cloud.database().collection("list").orderBy('date','desc').get({
  return result = cloud.database().collection("list").get({
    success:res=>{
      return res
    },
    fali:err=>{
      return err
    }
  })
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  • 要调用的js文件
wx.cloud.callFunction({
    name:"getList",
    success:res=>{
      console.log("请求云函数成功",res)
      this.setData({
        dataList:res.result.data
      })
    },
    fail:err=>{
      console.log("请求云函数失败",err)
    }
  })
1
2
3
4
5
6
7
8
9
10
11
12
onLoad() {
    //获取用户的信息
    const nickName = this.data.nickName;
    const avatarUrl = this.data.avatarUrl;
    wx.getUserInfo({
      success: res => {
        this.data.nickName = res.userInfo.nickName
        this.data.avatarUrl = res.userInfo.avatarUrl
        this.setData({
          nickName: this.data.nickName,
          avatarUrl: this.data.avatarUrl
        })
      }
    })
    // 检查用户是否微信授权
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 通过云函数获取数据库中的数据
          wx.cloud.callFunction({
            name:"getList",
            success:res=>{
              console.log("请求云函数成功",res)
              this.setData({
                dataList:res.result.data
              })
            },
            fail:err=>{
              console.log("请求云函数失败",err)
            }
          })
          // 获取数据库中的数据
          // DB.get({
          //   success: res => {
          //     console.log("请求成功", res)
          //     this.setData({
          //       dataList: res.data
          //     })
          //     console.log(this.data.dataList)
          //   },
          //   fail: err => {
          //     console.log("请求失败", res)
          //   }
          // })
        } else {
          // 用户未授权,提示用户授权
          wx.showLoading({
            title: '请先登录...',
          })
          setTimeout(() => {
            wx.hideLoading({
              complete: (res) => {
                console.log("已关闭")
                wx.switchTab({
                  url: '../user/index',
                })
              },
            })
          }, 1200);
        }
      }
    })
  },
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
  • 云函数获取数据库中的数据按时间的先后排序
  • 比如你的集合中,有个字段为时间,现要按照最近时间的数据先获取出来。这时候,就要在条件中加入orderBy方法
db.collection('dynamic').orderBy('sendTime','desc').get()

1
2

# 云存储

  • 用来存储图片和视频,直接上传到云存储中即可
  • 可以调用云地址获取数据
<image class="image" src="cloud://abc-7g742zsa5e0d63a6.6162-abc-7g742zsa5e0d63a6-1303875094/record/more.jpg"></image>
1

# 云函数获取openid

云函数login中

// 获取 WX Context (微信调用上下文),包括 OPENID、APPID、及 UNIONID(需满足 UNIONID 获取条件)
  const wxContext = cloud.getWXContext()

  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
1
2
3
4
5
6
7
8
9

普通按钮

<button bindtap="getOpenid">获取openid</button>

getOpenid() {
	wx.cloud.callFunction({
		name: 'login'
	}).then((res) => {
		console.log(res)
	})
}
1
2
3
4
5
6
7
8
9

注意:openid 在小程序和公众号下是不一样的,unionid 在小程序和公众号下都是一样的

编辑 (opens new window)
上次更新: 2021/08/03, 15:55:12
小程序笔记
Vue3

← 小程序笔记 Vue3→

最近更新
01
大文件分片上传
08-05
02
Vue3实现OSS存储
08-05
03
H5 TTS
08-05
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Aiden Wu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×