Fork me on GitHub

小程序云开发(1)

小程序云开发

一、开发工具

1、更新微信开发工具

2、开通云开发

3、打开云开发控制台进行配置

二、数据库

1、上手云数据库

创建第一个集合 ---》 创建第一条记录

 

 

2、数据类型

   云开发数据库提供以下几种数据类型:

² String:字符串

² Number:数字

² Object:对象

² Array:数组

² Bool:布尔值

² GeoPoint:地理位置点

   GeoPoint 类型用于表示地理位置点,用经纬度唯一标记一个点,这是一个特殊的数据存储类型。注意,如果需要对类型为地理位置的字段进行查找,一定要建立地理位置索引。

具体的地理位置 API 可参考 Geo API 文档

² Date:时间

Date 类型用于表示时间,精确到毫秒,在小程序端可用 JavaScript 内置 Date 对象创建。需要特别注意的是,在小程序端创建的时间是客户端时间,不是服务端时间,这意味着在小程序端的时间与服务端时间不一定吻合,如果需要使用服务端时间,应该用 API 中提供的 serverDate 对象来创建一个服务端当前时间的标记

² Null

   null 相当于一个占位符,表示一个字段存在但是值为空。

3、权限控制

   数据库的权限分为小程序端和管理端,管理端包括云函数端和控制台。小程序端运行在小程序中,读写数据库受权限控制限制,管理端运行在云函数上,拥有所有读写数据库的权限。云控制台的权限同管理端,拥有所有权限。小程序端操作数据库应有严格的安全规则限制。

以下按照权限级别从宽到紧排列如下:

  • 仅创建者可写,所有人可读:数据只有创建者可写、所有人可读;比如文章。
  • 仅创建者可读写:数据只有创建者可读写,其他用户不可读写;比如用私密相册。
  • 仅管理端可写,所有人可读:该数据只有管理端可写,所有人可读;如商品信息。
  • 仅管理端可读写:该数据只有管理端可读写;如后台用的不暴露的数据。

简而言之,管理端始终拥有读写所有数据的权限,小程序端始终不能写他人创建的数据

4、初始化

   在开始使用数据库 API 进行增删改查操作之前,需要先获取数据库的引用。以下调用获取默认环境的数据库的引用:

const db = wx.cloud.database()

如需获取其他环境的数据库引用,可以在调用时传入一个含 config 字段的参数,在其中通过 env 字段指定要使用的环境。此时方法会返回一个对测试环境数据库的引用。

示例:假设有一个环境名为 test,用做测试环境,那么可以如下获取测试环境数据库:

const testDB = wx.cloud.database({

  config: {

    env: 'test'

  }

})

要操作一个集合,需先获取它的引用。在获取了数据库的引用后,就可以通过数据库引用上的 collection 方法获取一个集合的引用了,比如获取待办事项清单集合:

const todos = db.collection('todos')

获取集合的引用并不会发起网络请求取拉取它的数据,我们可以通过此引用在该集合上进行增删查改的操作,除此之外,还可以通过集合上的 doc 方法来获取集合中一个指定 ID 的记录的引用。同理,记录的引用可以用于对特定记录进行更新和删除操作。

假设我们有一个待办事项的 ID 为 todo-identifiant-aleatoire,那么我们可以通过 doc 方法获取它的引用:

const todo = db.collection('todos').doc('todo-identifiant-aleatoire')

5、插入数据

   可以通过在集合对象上调用 add 方法往集合中插入一条记录。还是用待办事项清单的例子,比如我们想新增一个待办事项:

db.collection('todos').add({

  // data 字段表示需新增的 JSON 数据

  data: {

    // _id: 'todo-identifiant-aleatoire', // 可选自定义 _id,在此处场景下用数据库自动分配的就可以了

    description: "learn cloud database",

    due: new Date("2018-09-01"),

    tags: [

      "cloud",

      "database"

    ],

    // 为待办事项添加一个地理位置

    location: new db.Geo.Point(23, 113),

    done: false

  },

  success: function(res) {

    // res 是一个对象,其中有 _id 字段标记刚创建的记录的 id

    console.log(res)

  }

})

当然,Promise 风格也是支持的,只要传入对象中没有 success, fail 或 complete,那么 add 方法就会返回一个 Promise:

db.collection('todos').add({

  // data 字段表示需新增的 JSON 数据

  data: {

    description: "learn cloud database",

    due: new Date("2018-09-01"),

    tags: [

      "cloud",

      "database"

    ],

    location: new db.Geo.Point(23, 113),

    done: false

  }

})

.then(res => {

  console.log(res)

})

数据库的增删查改 API 都同时支持回调风格和 Promise 风格调用。

在创建成功之后,我们可以在控制台中查看到刚新增的数据

posted @ 2018-11-27 14:16  慕遇见  阅读(416)  评论(0编辑  收藏  举报