WeChat ミニ プログラム クラウド開発のクイック スタート

クラウド開発とは何ですか?

クラウド開発は、サーバーレス アーキテクチャを使用して、フルスタックを迅速に実現できるバックエンド クラウド サービスです。開発者はサーバーを構築する必要がなく、クラウドデータベース、クラウドストレージ、クラウド機能などのクラウドサービスの基本機能を直接利用できます。

この時点で、これと現在の従来の開発モデルの違いは何だろうと考えるかもしれません。実際に家を建てるプロセスを通して、従来の開発モデルとクラウド開発モデルの違いを理解してみましょう。

伝統的な方法で家を建てる場合、次の 6 つのステップが必要です。
1) 家の基礎を築き、構造を設計し、整理します。(バックエンドのクラウドサービス基盤)
2)住宅の安定性を判断する鍵でもある地梁。(クラウドデータベースの構築)
3)石積みの主体は家の基本構造を構築することです。(クラウドストレージの構築)
4)ステップハウスに土を入れ、地面を叩いて固めます。(クラウド機能の構築)
5) 屋根にセメントを敷き、密閉します。(静的ホスティングおよび拡張機能を提供します)
6) 好みのスタイルに装飾します。(ビジネス要件のロジックコードを書く)

クラウド開発モデルには、好みのスタイルに装飾するという 1 つのステップしかありません。図 1-1 は、従来の開発で管理する必要がある基本リソースとクラウド開発で管理する必要がある基本リソースの比較を示していることがわかります。これは、2 つの間のギャップをより明確に理解するのに役立ちます。

f9cf0202307271118001472.png

図 1-1 従来の開発で管理する必要がある基本リソース VS クラウド開発で管理する必要がある基本リソース

それでおしまい。クラウド開発では、インフラストラクチャを管理する必要がなく、データベース、ストレージ、機能、静的ホスティングなどの基本機能と拡張機能を提供する、完全なバックエンド クラウド サービスが提供されます。従来の開発モデルと比較して、クラウド開発では人件費を少なくとも 50% 節約し、配信効率を 70% 向上させることができます。

クラウド開発モデルの調整

その前に、元のコードボーイメモプロジェクトをクラウド開発プロジェクトに変更する必要があるため、まずプロジェクト管理からプロジェクトを削除する必要があります。(新しいクラウド開発プロジェクトの場合、この手順は無視できます)

まず、ミニ プログラムのプロジェクト管理ページに入ります。

a1f7b202307271118224821.png

次に、右上隅の「管理」ボタンをクリックして、このページの管理ステータスを入力します。

2c868202307271118349620.png

次に、以前のスタンドアロン バージョンを選択し、削除するかどうかを確認します。

59f67202307271118457997.png

次に、インポートプロジェクトインターフェイスでクラウド開発を確認できます。

b4e61202307271118555640.png

この時点で入力すると、アプレット開発ツールが一連のクラウド開発デモを自動的に生成し、それを直接処理することがわかります。

a14e8202307271119056346.png

1dab2202307271140236819.png

1e8c0202307271119137542.png

これは、ミニ プログラム Yunkai デモ コードの一部のモジュールが見つからないことを意味するため、これを無視して、最初にすべてのデモ コードを削除してください。

02617202307271119224871.png

削除後は、通常のページのレンダリングが表示されます。

cf411202307271119314729.png

通常の状態に戻り、次に変革する必要があるのはデータ運用のビジネスです。

データ キャッシュがクラウド開発を変革

変革の前に、まずアイデアを整理する必要があります。

  1. まずは、以前に学んだ抽象的な方法を見てみましょう。
  2. データ操作に関連するすべてのメソッドは、保守が容易な js クラスに抽出されます。
  3. すべてのメソッドをクラウドデータベース操作機能に置き換えます。

抽象データ操作 API

ルートディレクトリ直下にapiフォルダを追加し、その下にメモ全体の操作APIを格納するmemo.jsを追加します。

782e8202307271119468540.png

整理するにはどのような方法がありますか:

  1. メモのリストを取得する
  2. メモの詳細を取得する
  3. メモ情報を追加する
  4. メモ情報を削除する
  5. メモ情報の変更

まず、関連するメソッドの関数名を選択してから、export ステートメントを作成します。
memo.js の完全なコード

3c53f202307271138124393.png

まず、リスト ページの onShow 関数で呼び出されるメモ リストを取得しましょう。

6c892202307271132413221.png

現時点では setData はページ操作関数なので、抽象化したい部分は次のとおりです。

3953d202307271132507074.png

次に、このコードを memo.js に配置します。

getMemoList に関する memo.js コード スニペット

fd710202307271133053889.png

それをリストページの呼び出しに置き換えて、まずメモのgetMemoList関数を導入します。
List.js ヘッダーはコード スニペットをインポートします

ec80920230727113321184.png

インポート後に onShow 関数で使用される
onShow 内のすべてのコード フラグメント

701bd202307271133313579.png

同様に、以前の取得内容、削除、変更をメモ.js に抽象化できます。
メモ.js のすべてのコード

77ddb202307271138491596.png

対応するビジネス シナリオで呼び出しするには、呼び出しの前にメソッドを導入する必要があります。インポートされたコードは比較的繰り返しが多いため、以下にはインポートされたコードは掲載されず、使用されたコードのみが掲載されます。

コードメソッド呼び出しの削除:
list.js の del 関数のすべてのコード

27ce020230727113349464.png

メモの詳細を確認する Call:
edit.jsのonLoad関数の全コード

cd54b202307271133594772.png

メソッド呼び出しの追加と削除:
edit.js の save 関数での保存と変更に関するコード スニペット

5ba61202307271134119380.png

この時点で、最初のステップが完了しました。まずデータ操作オブジェクトを抽出し、次にクラウド データベース操作を実行します。

クラウドデータベースの運用

データベースを初期化する

まず、クラウド開発コンソールに入りましょう。

a1dc0202307271120312319.png

次に「データベース」を選択します。

Cloud Development は JSON データベースを提供しており、その名前が示すように、データベース内の各レコードは JSON 形式のオブジェクトです。データベースには複数のコレクション (リレーショナル データのテーブルに相当) を含めることができ、コレクションは JSON 配列とみなすことができます。配列内の各オブジェクトはレコードであり、レコードの形式は JSON オブジェクトです。

9de04202307271120419248.png

利用可能なコレクションが存在しないことがわかり、再度コレクションメモを作成してメモデータを保存します。

dc1b9202307271120513123.png

新しいデータを追加する

確認したい新しいテストデータを手動で追加して、「レコードの追加」をクリックしてみましょう。

18f39202307271121009958.png

e3655202307271134265548.png

上記のテストデータを使用して追加します

aa610202307271121127561.png

さらに、さまざまな種類のデータを追加できることがわかり、クラウド開発データベースでは次のデータ タイプが提供されます。

  • 文字列: 文字列
  • 番号: 番号
  • オブジェクト: オブジェクト
  • 配列: 配列
  • Bool: ブール値
  • 日付時刻
  • 地理: 複数の地理位置情報タイプ
  • ヌル

最初はデフォルトで文字列型のデータを使用しますが、追加が完了するとメモコレクションにデータが表示されます。

94c01202307271121258093.png

データテーブルにはすでにデータが含まれていますが、それを取得するにはどうすればよいでしょうか?

データベースデータを取得する

アプレット編集デスクに戻り、データの取得方法を修正してみましょう。

5c339202307271134379568.png

これはローカルデータを取得する方法、以下はデータベースを取得する方法です

bd699202307271134475113.png

電話をかけるためにリスト ページに移動すると、エラーが見つかりました。

9a166202307271121414021.png

その前にクラウド API を初期化する必要があることがわかりました。
ここで問題が発生します。後でクラウド API への呼び出しが多数発生するため、最初にすべてを初期化する必要があります。この初期化は 1 回だけ行う必要があります。この時点で初期化をどこで呼び出せばよいでしょうか?
アプリケーションの最初から関数を呼び出す必要があり、一度だけ呼び出す必要がある場合は、app.js の onLaunch ライフ サイクルで関数を呼び出すことができます。
app.js の onLaunch 関数のコード スニペット

ebc0820230727113456881.png

次に、呼び出しを見てみましょう。ここでデバッグ テクニックを説明します。デバッガーの [ネットワーク] パネルを使用し、フィルターするクラウド ラベルを選択します。ここで、先ほどの API リクエストを呼び出すことができます。

62ef9202307271121577173.png

まずリクエストのステータスを確認します。ステータスの観点から見ると、これは成功したリクエストです。

a1eb0202307271122105973.png

次に、返されたデータを見てみましょう。

a9d72202307271122191189.png

明らかにデータがあるのに、なぜそれを取得できないのでしょうか?
クラウド開発データベース コレクションの読み取り権限の問題が原因です。デフォルトでは、新しく作成されたコレクションの読み取り権限は、作成された場合にのみ読み書きできます。最初のテスト データは手動で入力されるため、作成者がいないため、デフォルトの権限を読み取ることはできません。
クラウド開発コントロール パネルにアクセスし、データベース => データ権限を見つけます。

84c91202307271122287273.png

権限を「作成者は読み書きのみ可能」から「すべてのユーザーが読み書き可能、作成者のみが読み書き可能」に変更してみます。変更が完了したら、取得メソッドを再度呼び出して、返された結果にこのテスト データが表示されることを確認します。

e67bf202307271122374093.png

データは出てきますが、エラーログが残っていることがわかります。

fef99202307271122464795.png

特定のコード ブロック:

00eb2202307271122559727.png

理由: クラウド API を使用する前に使用していたキャッシュ操作 API は特定のデータを返す同期操作でしたが、変更されたデータ取得メソッドは非同期関数であり、リスト ページにデータが送信されて使用されることはありません。最終的に、リスト データ オブジェクトは空になり、リストの長さは当然ながら未定義のエラー メッセージが表示されます。

上記の success メソッドの実装を使用してデータベースからデータを取得することに加えて、Promise スタイルでの呼び出しもサポートしています。単純に、
ラップされたコールバック関数の呼び出しメソッドをコールバック関数と呼ばれるチェーンに変更すると理解できます。

8f553202307271135102375.png

Promise スタイルの呼び出しに基づいて、関数を 2 つの部分に分解できます。次に、データを転送するコードの一部を変更しましょう。

1. getMemoList にクエリ コードを入力します。

6fb93202307271135244593.png

2. クエリ結果をリスト ページに表示します。

cba9f202307271135359024.png

このようにして、データベース内のデータを正常に表示することができました。

7473c202307271123157335.png

次に、クラウド API のすべてのメソッドを実装しましょう。

データの詳細を表示する

ここではインデックス添字を使用できません。通常、バックエンドと対話するときは ID を使用してクエリを実行します。各データは ID フィールドを生成し、フィールド名は _id です。

19b7620230727112327362.png

e0887202307271142282107.png

a9194202307271131058492.png

ページ配信用のIDを取得する

92128202307271136021843.png

クエリ メソッドの変更。ID によるクエリは非常に一般的な方法であるため、クラウド API にはクエリに ID を渡すための doc メソッドが直接あります:
memo.js の getMemoInfo 関数コード

533eb202307271136111713.png

クエリメソッド呼び出し:
edit.js の onLoad 関数コード

0cac4202307271136209062.png

メモデータを追加する

新しいメソッドの変更:
memo.js の addMemoInfo 関数

0b2fb20230727113629407.png

メソッドの呼び出し:
edit.js の save 関数にロジック コード スニペットを追加します。

7f1b8202307271136406222.png

追加が成功すると、新しく追加されたデータのid情報が返されます。

3d072202307271123576487.png

その後、データベースに新しく追加されたデータを確認できます。

d2ec6202307271124076802.png

5c01c202307271142489687.png

ba8a4202307271124196589.png

次に、以下のテーブルに返されたデータ (追加したデータのみ) を確認します。

e7e16202307271124282584.png

メモデータを修正する

修正方法変換:
memo.jsのupdateMemoInfo関数。

e4a6f202307271136505664.png

前回の修正では、削除してから「偽」の修正を追加するロジックでしたが、今回は直接修正方法を採用します。
edit.js の save 関数はロジック コード スニペットを変更します

fdd22202307271136585575.png

返された結果で更新されるのは、正常に変更されたデータの数です

ec921202307271124445665.png

メモデータを削除する

メソッド変換の削除:
memo.js の deleteMemoInfo 関数

dc1a6202307271137078113.png

呼び出しメソッド:
list.js の del 関数

761b4202307271137218586.png

ここで、削除後にリストを更新するには、すべてのデータをクエリするメソッドを呼び出す必要があることに注意してください。

50bf9202307271125036092.png

削除された戻り値は削除された数量です。

要約する

このセクションでは、クラウド API を使用してアプレット側でクラウド データベースを操作し、次の機能を学習します。

  • get() を使用してデータベースにクエリを実行します
  • add()を使用してデータを追加しました
  • update()を使用したデータ変更
  • データはremove()を使用して削除されました

これでクラウドデータベースを利用したメモデータの保存が完了しました。

おすすめ

転載: blog.csdn.net/weixin_64051447/article/details/131965200