小程序·雲開發:新手常見問題全解答

小程序·雲開發 文檔裏,則是全部與小程序·雲開發相關的文檔內容。下面會經過用戶關心的的一些問題,介紹在哪裏能夠找到對應的文檔。php

1. 雲開發是能夠用於全部的小程序基礎庫嗎?

是的,參考兼容性問題進行配置。html

2. 雲開發的服務,能夠在哪些端被調用?不一樣端會有哪些的調用能力的不一樣?

能夠在小程序端和服務端調用。小程序端是經過內置的接口調用。而服務端,這裏包括原有的服務和雲函數,能夠經過 wx-server-sdk 或者 tcb-admin-node 其中一個 node sdk 進行調用,前者是基於後者進行二次開發的。若是但願開發體驗與小程序端一致,可採用 wx-server-sdk。小程序端的調用因爲安全問題,會由較多的限制,而在服務端,則是可擁有管理員的權限(因此你會發現 tcb-admin-node 帶有 admin 字眼,表示具備管理員權限)。node

小程序端的 API 文檔,可在 小程序端 API 文檔 查看。git

服務端的 API 文檔,可在 雲開發 Server API 文檔 查看。github

3. 在本身的服務器或者電腦本地的Node運行環境裏(不是雲開發)調用雲開發的服務,要作哪些額外配置。

須要填入騰訊雲的 SecretIdSecretKey。經過此連接登陸小程序對應的騰訊雲賬號,而後在雲API密鑰 裏獲取。數據庫

雲API密鑰

獲取密鑰後,可以使用 tcb-admin-node,在你的服務器裏調用雲開發的服務。json

// 初始化示例
const cloud = require('tcb-admin-node');

// 初始化資源
// 雲函數下不須要 secretId和secretKey,但若是在本身的服務器裏使用則須要
// env若是不指定將使用默認環境
cloud.init({
  secretId: '',
  secretKey: '',
});

// 獲取全部數據的方法
async function getData(colName) {
  const db = cloud.database();
  const userCollection = db.collection(colName);

  // 統計數據總量
  let res = await userCollection.count();
  let total = res.total;

  let data = [];
  let length = 0;
  let start = 0;
  
  // 循環將數據讀出來
  while (total > length) {
    let res = await userCollection.skip(start).get();

    // 讀出來後將數據存到data裏
    data = data.concat(res.data);
    length += res.data.length;
    start += length;
  }

  return data;
}

getData('users').then((data) => {
    console.log(data);
}); // 調用方法複製代碼

4. 雲函數的建立和依賴安裝。

project.config.json 文件裏,要添加如下字段,指向雲函數的根目錄。小程序

{
   "cloudfunctionRoot": "./server/functions/"
}複製代碼

那意味着,若是咱們想建一個叫 test 的雲函數,須要在 ./server/functions 這個目錄裏新建 test 目錄 ,而且要在 test 裏安裝依賴。千萬不要在根目錄安裝依賴!api

5. 雲函數能夠互相調用嗎?

能夠的,在 A 雲函數裏面,執行如下的語句就能夠調用 B 雲函數了,跟小程序端調用實際上是同樣的。瀏覽器

const cloud = require('wx-server-sdk');
exports.main = async (event, context) => {
  const res = await cloud.callFunction({
    // 要調用的雲函數名稱
    name: 'B',
    // 傳遞給雲函數的參數
    data: {
      x: 1,
      y: 2,
    }
  })
  return res.result;
}複製代碼

6. 是否能夠批量導入導出數據?

能夠的,請參考 數據庫導入數據庫導出

7. 數據庫的在不一樣端的權限是怎麼樣的?

小程序端的權限沒有服務端那麼高,請參 權限控制

8. 在小程序端,如何使用 async/await 語法?

在雲函數裏,因爲 Node 版本最低是 8.9,所以是自然支持 async/await 語法的。而在小程序端則否則。在微信開發者工具裏,以及 Android 端手機(瀏覽器內核是 QQ瀏覽器的 X5),async/await是自然支持的,但 iOS 端手機在較低版本則不支持,所以須要引入額外的 polyfill。可把這個 polyfill 文件引用到有使用 async/await 的文件當中。

在 js 裏引入 polyfill

 10元/月學生機       2860元代金券


原文出處:cloud.tencent.com/developer/a…

相關文章
相關標籤/搜索