小程序雲開發(1)

小程序雲開發

1、開發工具

1、更新微信開發工具html

2、開通雲開發數據庫

3、打開雲開發控制檯進行配置小程序

2、數據庫

1、上手雲數據庫api

建立第一個集合 ---》 建立第一條記錄數組

 

 

二、數據類型安全

   雲開發數據庫提供如下幾種數據類型:微信

² String:字符串網絡

² Number:數字微信開發

² Object:對象ide

² Array:數組

² Bool:布爾值

² GeoPoint:地理位置點

   GeoPoint 類型用於表示地理位置點,用經緯度惟一標記一個點,這是一個特殊的數據存儲類型。注意,若是須要對類型爲地理位置的字段進行查找,必定要創建地理位置索引。

具體的地理位置 API 可參考 Geo API 文檔

² Date:時間

Date 類型用於表示時間,精確到毫秒,在小程序端可用 JavaScript 內置 Date 對象建立。須要特別注意的是,在小程序端建立的時間是客戶端時間,不是服務端時間,這意味着在小程序端的時間與服務端時間不必定吻合,若是須要使用服務端時間,應該用 API 中提供的 serverDate 對象來建立一個服務端當前時間的標記

² Null

   null 至關於一個佔位符,表示一個字段存在可是值爲空。

三、權限控制

   數據庫的權限分爲小程序端和管理端,管理端包括雲函數端和控制檯。小程序端運行在小程序中,讀寫數據庫授權限控制限制,管理端運行在雲函數上,擁有全部讀寫數據庫的權限。雲控制檯的權限同管理端,擁有全部權限。小程序端操做數據庫應有嚴格的安全規則限制。

如下按照權限級別從寬到緊排列以下:

  • 僅建立者可寫,全部人可讀:數據只有建立者可寫、全部人可讀;好比文章。
  • 僅建立者可讀寫:數據只有建立者可讀寫,其餘用戶不可讀寫;好比用私密相冊。
  • 僅管理端可寫,全部人可讀:該數據只有管理端可寫,全部人可讀;如商品信息。
  • 僅管理端可讀寫:該數據只有管理端可讀寫;如後臺用的不暴露的數據。

簡而言之,管理端始終擁有讀寫全部數據的權限,小程序端始終不能寫他人建立的數據

四、初始化

   在開始使用數據庫 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')

五、插入數據

   能夠經過在集合對象上調用 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 風格調用。

在建立成功以後,咱們能夠在控制檯中查看到剛新增的數據

相關文章
相關標籤/搜索