【毕业设计】小程序的云开发初识

265 阅读3分钟

1 小程序云开发环境搭建

1.1 创建环境

创建小程序项目的时候选择云开发,前提条件要有APPID
创建完项目会有cloudfunctions文件夹和miniprogram文件夹
点击IDE上方的云开发,一步步创建环境,得到环境id
右键点击cloudfunctions文件夹选择创建好的环境
在app.js中将env的值改为自己创建的环境id

1.2 在JS文件中使用云数据库(云存储)要做的准备

在JS文件的开头

const db = wx.cloud.database()
const _ = db.command

以上就完成了初始化,可以直接在js函数里访问数据库

1.3 在云函数中使用云数据库(云存储、调用其他云函数)要做的准备

云函数属于管理端,运行环境是 Node.js,且需要安装wx-server-sdk依赖
第一步,新建Node.js云函数
第二步,在该云函数目录下打开终端,安装依赖:npm install --save wx-server-sdk@latest
第三步,在该云函数目录下的index.js文件中初始化

const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()
const _ = db.command

第四步,上传并部署云函数到云开发平台
第五步,可以在JS文件中调用云函数

注意:在云函数中进行一般算法不需要安装依赖(指不使用云数据库、云存储、调用其他云函数的操作)

2 小程序云开发具体实例

1.1 数据库运用

1.1.1 初始化

const db = wx.cloud.database();
const _ = db.command

1.1.2 数组查询(筛选适合条件的记录)

 query() {
    db.collection("data") // 选择data集合
      .where({
        count: _.in([1,3]) // 筛选在所写数组内的字段
      })
      .get() // 得到筛选信息 promise 对象
      .then(console.log) // 输出对应信息
      .catch(console.error)
 },

1.1.3 正则查询(筛选适合条件的记录)

 query() {
    console.log('query')
    db.collection("data")
      .where({
        name: new db.RegExp({
          regexp: 'krisli-0[1-9]', // 匹配krili-01 ··· krisli-09
          options: 'i'
        })
      })
      .get().then(console.log)
 },

1.1.4 字段查询(所有记录都会打印出来,显示true的字段)

 query() {
    db.collection("data")
      .field({
        name: true,
        sex: true
      })
      .get()
      .then(console.log)
     .catch(console.error)
  },

1.2 存储

1.2.1 上传文件

只能一张一张上传,目前靠循环临时文件路径

wx.cloud.uploadFile({
  cloudPath: 'example.png', // 上传至云端的路径
  filePath: '', // 小程序临时文件路径
  success: res => {
    // 返回文件 ID
    console.log(res.fileID)
  },
  fail: console.error
})

上传成功后会获得文件唯一标识符,即文件 ID,后续操作都基于文件 ID 而不是 URL。

1.2.2 下载文件

可以根据文件 ID 下载文件,用户仅可下载其有访问权限的文件:

wx.cloud.downloadFile({
  fileID: '', // 文件 ID
  success: res => {
    // 返回临时文件路径
    console.log(res.tempFilePath)
  },
  fail: console.error
})

1.2.3 删除文件

wx.cloud.deleteFile({
  fileList: ['cloud:// ······/1.png'], // 数组
  success: res => {
    // handle success
    console.log(res.fileList)
  },
  fail: console.error
})
更详细的 API 可参考小程序端及后端存储 API 文件。

组件支持

1.2.1 获取文件临时链接

wx.cloud.getTempFileURL({
    // 通过fileID来得到临时链接,用于外网?一些服务用到的源文件地址
    // 文件链接有有效期为两个小时:
  fileList: ['cloud://······/1.jpg'],
  success: res => {
  console.log(res.fileList[0])
    // fileList 是一个有如下结构的对象数组
    // [{
    //    fileID: 'cloud://xxx.png', // 文件 ID
    //    tempFileURL: '', // 临时文件网络链接
    //    maxAge: 120 * 60 * 1000, // 有效期
    // }]
  }
})