微信小程式接入LeanCloud

来源:https://www.cnblogs.com/yuzhou1234/archive/2020/03/17/12510693.html
-Advertisement-
Play Games

大家在做小程式或者客戶端開發的時候肯定會想使得數據進行聯網,但這樣就必須有對應的後臺伺服器以及資料庫,再加上linux運維等各種細節,往往會對新手比較勸退,在這裡給大家推薦一種 bass(後端即服務) ,不僅支持小程式,還支持網頁端,android,ios多平臺調用,支持Java,python,c ...



大家在做小程式或者客戶端開發的時候肯定會想使得數據進行聯網,但這樣就必須有對應的後臺伺服器以及資料庫,再加上linux運維等各種細節,往往會對新手比較勸退,在這裡給大家推薦一種bass(後端即服務),不僅支持小程式,還支持網頁端,android,ios多平臺調用,支持Java,python,c#等多種語言,最重要的是懂球帝的後端就是托管在這個平臺上的,安全性有很大的保障




LeanCloud微信小程式官方接入教程
https://leancloud.cn/docs/weapp.html

微信小程式JavaScript語言數據存儲教程
https://leancloud.cn/docs/leanstorage_guide-js.html

上來先不管原理,擼一把能直接用的教程

打開LeanCloud控制台網址
https://leancloud.cn/dashboard/applist.html#/apps

第一步:創建應用

第二步:填寫應用相關信息

應用名稱必須填寫
個人使用的小型的項目就選擇開發版

開發版的使用限制:以對象存儲為例,其他可查看官方價格說明

具體解釋一下每日的總請求數與雲端併發線程數

工作線程數指的是服務端可同時處理的請求數量。絕大多數應用需要的服務端工作線程數都不會超過 3 個。

假設服務端響應時間是 20 毫秒,那麼每個工作線程每秒鐘可以處理 1,000 / 20 = 50 個請求。

一個日活一萬的應用,如果每個用戶都產生 50 個請求,而且這一萬個用戶每天都集中在兩個小時內打開應用,這兩小時內平均每秒鐘發生的請求數就是 10,000 × 50 / 2 / 60 / 60 = 69 個,只需要 69 / 50 = 1.15 個工作線程就足以應對這兩個小時的請求高峰。

考慮到可能出現的峰值,實際運行的產品應當儘量預留一定的冗餘。商用版應用預設擁有 30 個工作線程,足以應對絕大部分需求,如有需要也可以按需調整。

數據 API 每天累計請求超過 30,000 次後,後續的請求會無法得到數據,並返回錯誤碼 429,這個限制每日重置。***

服務端工作線程數 超過 3 時,後續的請求會無法得到數據,並返回錯誤碼 429,這個限制在工作線程數小於 3 時解除。

第三步:可以看到我們創建的應用管理控制台

第四步:在圖示界面進行管理

第五步:微信小程式開發工具SDK下載安裝

https://leancloud.cn/docs/start.html

前往 https://releases.leanapp.cn/#/leancloud/javascript-sdk/releases
下載最新版本的 av-weapp-min.js,移動到 libs 目錄。

在 app.js 中使用 const AV = require('./libs/av-weapp-min.js'); 獲得 AV 的引用。在其他文件中使用時請將路徑替換成對應的路徑。

這裡牽扯到的一個問題就是路徑問題,這裡普及一下路徑的表示方法

所以相對於程式代碼所在的文件,利用好這個關係一定可以找到對應的路徑。

第六步

在 app.js 中使用 const AV = require('./libs/av-weapp-min.js');獲得 AV 的引用

併在app.js中初始化應用

//app.js
const AV = require('./libs/av-weapp-min.js');
AV.init({
  appId: 'Cl2HGjUA2177jyaUblh54MBi-gzGzoHsz',
  appKey: '6l8aMu7nsr6wNQau5TmczImP',
});
App({});

第七步

index.js中實現對象存儲,具體詳細的之後再說,我們這裡進行一個簡單的上傳工作在頁面載入完成之後

//獲取應用實例
const app = getApp();
const AV = require('../../libs/av-weapp-min.js');

Page({
  onLoad: function() {
    // 生命一個Todo類型
    var Todo = AV.Object.extend('Todo'); //Todo即為數據表名稱(或類名)
    // 新建一個Todo對象
    var todo = new Todo();
    // set方法:第一個參數為欄位名,第二個參數為該欄位的值
    todo.set('title', '部長會議'); //title為欄位名,工程師周會為該欄位的值
    todo.set('content', '周五晚上8點半');
    // 只要添加這一行代碼,服務端就會自動添加這個欄位
    todo.set('location', '507教室');
    todo.save().then(function(todo) {
    // 成功保存之後,執行其他邏輯.
    console.log('New object created with objectId: ' + todo.id);
    }, function(error) {
      // 異常處理
      console.error('Failed to create new object, with error message: ' + error.message);
    });

  }
})

第八步

實現完上邊的功能之後,界面打開代表數據已經上傳成功,可以在控制台進行相關的查看

第九步:問題解決

** 如果出現下麵問題**

** 找到工具 -> 項目詳情 -> 進入**

最後再按照這個功能變數名稱設置進入我們微信公眾平臺 -> 小程式 -> 設置 -> 開發設置 -> 伺服器功能變數名稱

第十步上傳文件

首先在視圖層進行頁面代碼編寫,創建一個按鈕,設置一個按鈕點擊事件upload

<!--index.wxml-->
<view class="container">
<button bindtap='upload'>點擊上傳圖片</button>
</view>

第十一步、js代碼中實現按鈕點擊上傳選擇圖片

//按鈕點擊事件上傳圖片
upload: function() {
    wx.chooseImage({
      count: 9,//最多可選擇的圖片張數,最多為9張
      sizeType: ['original', 'compressed'],//所選圖片尺寸,原圖、壓縮圖
      sourceType: ['album', 'camera'],//選擇圖片的來源,從相冊選圖、使用相機
        //介面調用成功的回調函數
        success: function(res) {
        var tempFilePath = res.tempFilePaths[0];    //圖片的本地臨時文件路徑列表
        new AV.File('love', {                       //調用API介面上傳文件,之後進行詳細講解
          blob: {
            uri: tempFilePath,
          },
        }).save().then(
          file => console.log(file.url())
        ).catch(console.error);
      }
    });
  }

第十二步:運行小程式,上傳圖片

第十三步:用戶系統一鍵登錄

  //界面開始顯示時LeanCloud一鍵登錄
  onShow: function() {
    AV.User.loginWithWeapp().then(user => {
      this.globalData.user = user.toJSON();
    }).catch(console.error);
  },

第十四步:查看用戶信息

<button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">查看用戶信息</button>
 //獲取用戶信息
  bindGetUserInfo:function(e) {
  console.log(e.detail.userInfo);
  }

瞭解更多技術文章,歡迎關註我的個人公眾號


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一. Linux簡介 1.Linux是一套可免費使用和自由傳播的類UNIX操作系統。1991年,芬蘭赫爾辛基大學學生Linus開發了Linux內核。此後,一大批程式愛好者、軟體技術專家對Linux進行修改和完善。Linux操作系統從誕生到現在,其開放、安全、穩定的特性得到越來越多用戶的認可,又由於其 ...
  • 01PARTCoreWebApi教程本地演示環境 Visual Studio2019 Vsersion:16.4.4 + NetCore3.1.2 02PARTNginx快速搭建配置負載均衡 Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD- ...
  • !/bin/sh 本文原內容來自:https://github.com/judasn/Linux Tutorial/blob/master/CentOS Extra Packages.md 可能額外需要移除/etc/yum.repos.d/mirrors rpmforge中失效的源,以及移除對應的. ...
  • 背景:測試伺服器 MySQL 資料庫不知何種原因宕機,且無法啟動,而原先的資料庫並沒有備份,重新搭建一個新伺服器把原data 複製出來 進行恢復 1 儘量把原data複製出來(一個都不要少以防意外 其實真正需要的是 你要恢復的庫 和ibdata1 innodb引擎適用) 2 在其他伺服器上 搭建一個 ...
  • MySQL主從複製原理 主伺服器資料庫的每次操作都會記錄在其二進位文件mysql bin.xxx(該文件可以在mysql目錄下的data目錄中看到)中,從伺服器的I/O線程使用專用賬號登錄到主伺服器中讀取該二進位文件,並將文件內容寫入到自己本地的中繼日誌relay log文件中,然後從伺服器的SQL ...
  • 本文檔用於指導在CentOS 6.5下使用nginx反向代理tomcat,併在nginx端支持ssl。 安裝nginx。參見CentOS 6 nginx安裝。 SSL證書申請。參見騰訊SSL證書申請和配置或[使用certbot為站點添加https支持]。 安裝tomcat。目前使用的版本為8.x。一 ...
  • 安裝之前 確認是否已安裝舊版mysql。如有,則卸載(註意需要的數據備份)。 /etc/init.d/mysqld stop yum remove mysql mysql rm rf /var/lib/mysql rm /etc/my.cnf 下載 下載 wget https://dev.mysql ...
  • Linux 系統是一種開源高穩定性的操作系統,在伺服器領域得到廣泛的應用。作為一個Java後臺開發工程師經常需要登錄Linux伺服器部署應用程式,或者是查看程式的運行狀態。一般的Linux伺服器上是不會安裝界面程式的,因此熟練掌握常用的Linux命令對工程師來說非常重要。 本篇日誌是我在學習過程的總 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...