小プログラムの全スタック開発新時代
8406 ワード
李成煕、騰訊雲高級技師.2014年度卒業は騰訊AlloyTeamに参加し、QQ群、模様中継、騰訊文書などのプロジェクトを担当したことがあります.2018年にテンセントなどの開発チームに参加します.性能の最適化、工程化及び小プログラムサービスに専念する.微博𞓜は𞓜Githubを知っている.
原文のリンク
マイナープログラムとは何ですか?
マイナープログラム・クラウド開発はWeChatチームとテンセントクラウドチームが共同で開発した一連の小さいプログラムの基礎能力であり、簡単に言えば、雲能力は小さいプログラムの基礎能力になります.セット機能は、騰訊雲が新たに打ち出した雲開発(Tencent Coud Base)に基づいて開発された一連の完備した小プログラムバックグラウンド開発方案です.
小さいプログラム・クラウドは開発者に完全なクラウドプロセスを提供し、バックエンドの開発と維持概念を簡略化し、サーバを構築する必要がなく、プラットフォームから提供されるAPIを使ってコア業務の開発を行うことで、高速なオンラインと反復を実現できる.
この解決策は現在3つの基礎能力サポートを提供しています.記憶:ウィジェットの先端に直接クラウドファイルをアップロード/ダウンロードし、ウィジェットクラウドの可視化管理 データベース:1つは、ウィジェットの先端でも動作可能であり、クラウド関数でも読み書き可能な文書型データベース である.クラウド関数:クラウドで実行されるコード、WeChatプライベートプロトコルの天然認証、開発者は業務論理コード を作成するだけです.
今後は、より多くのサービス能力を集積し、より強力なクラウドサポートを提供します.
どのように小さいプログラム・雲を使って開発しますか?
上は小さいプログラム・雲の開発の簡単な使用図譜です.小さいプログラムの端で、直接に公式の提供するインターフェースを使って、雲の関数の端で、直接に公式の提供するNode SDKを使って、あなたの雲の資源を操作することができます.以前は小さいプログラムを開発するのに心配していたデータベースの構築、ファイルシステムの配置などはありませんでした.
プログラム開発
もちろん、実用的なクラウドの開発は、既存のバックグラウンドアーキテクチャを排除していません.下のアーキテクチャを通じて、既存のバックグラウンドサービスとシームレスに対応できます.
それから、私はそれぞれ小さい時から手続きをして、サービスでこれらの雲資源をどう使うかを説明します.
雲の能力を使う
アプレット端
クライアントとは、ここでは小さなプログラムの端にあることを意味します.雲開発能力を使うなら、以下の配置をしてください.は、 を追加する. project.co fig.jsonには、クラウド関数を格納するディレクトリ を指定するためのフィールドcloudfunctionRootが追加されている.雲開発能力を初期化する:
ユーザ管理において、クラウド能力を使用したウィジェットのアクセスユーザリストが表示され、デフォルトではアクセス時間の順序で並べられています.アクセス時間のトリガは、ウィジェット端で
職務に服する
クラウド関数でファイル、データベース、クラウド関数リソースを操作したいなら、私たちが提供したサービス端末SDKを使って操作してもいいです.まず、あなたのあるクラウド関数に入って、以下の依存パッケージをインストールします.
保存
クラウド開発は、ストレージスペース、アップロードファイル、ダウンロードファイル、CDNによるファイルアクセスの加速などの能力を提供しています.
アプレット端
職務に服する
アップロードされたファイルはコンソールに表示されます.コンソールで写真の詳細を削除したりダウンロードしたりします.
文書全体の権限をコントロールすることもできます.ここでは具体的な紹介があります.
文書をサービスで保存します.
データベース
プログラムクラウドは文書型データベースを提供しています.データベースには複数のセット(関係型データのテーブルに相当)が含まれています.セットはJSON配列に近いです.配列の各オブジェクトは一つの記録で、記録の形式はJSON文書です.
各記録には一つの
データベース
データベース
アプレット端
職務に服する
コンソール
コンソールでユーザー操作のデータを見ることができます.自分でコンソールにデータを追加したり、更新したり、削除したりすることもできます.
データ量が大きい場合は、クエリーを提供するインデックスの効率を設定できます.
データベースは、権限を設定することによって、各
雲の関数
クラウド関数はクラウドのコードを実行しています.サーバーを管理する必要がなく、開発ツール内でワンタッチで展開をアップロードすれば、バックエンドコードを実行できます.
開発者は、クラウド関数内で呼び出しごとのコンテキスト(
アプレット端
職務に服する
コンソール
アップロード後のクラウド関数は、ここに羅列されます.
クラウド関数を呼び出すたびに、ここでログを見ることができます.また、テストのパラメータを作成して、デバッグすることもできます.
文法飴
大部分のインターフェースは現在、PromiseとAync/Awaitの2つの書き方をサポートしています.この節は
Promise
開発者リソース
マイナープログラム・クラウド開発はテンセントクラウドのクラウド開発機能に基づいているので、テンセントクラウドとウィジェットの両方に多くの開発者資源があります.ここで参考にしてください.テンセントクラウド開発者リソース及び文書 テンセントなどの開発プラットフォームの公式Github マイクロクレジットプログラム・クラウド文書
原文のリンク
マイナープログラムとは何ですか?
マイナープログラム・クラウド開発はWeChatチームとテンセントクラウドチームが共同で開発した一連の小さいプログラムの基礎能力であり、簡単に言えば、雲能力は小さいプログラムの基礎能力になります.セット機能は、騰訊雲が新たに打ち出した雲開発(Tencent Coud Base)に基づいて開発された一連の完備した小プログラムバックグラウンド開発方案です.
小さいプログラム・クラウドは開発者に完全なクラウドプロセスを提供し、バックエンドの開発と維持概念を簡略化し、サーバを構築する必要がなく、プラットフォームから提供されるAPIを使ってコア業務の開発を行うことで、高速なオンラインと反復を実現できる.
この解決策は現在3つの基礎能力サポートを提供しています.
今後は、より多くのサービス能力を集積し、より強力なクラウドサポートを提供します.
どのように小さいプログラム・雲を使って開発しますか?
上は小さいプログラム・雲の開発の簡単な使用図譜です.小さいプログラムの端で、直接に公式の提供するインターフェースを使って、雲の関数の端で、直接に公式の提供するNode SDKを使って、あなたの雲の資源を操作することができます.以前は小さいプログラムを開発するのに心配していたデータベースの構築、ファイルシステムの配置などはありませんでした.
プログラム開発
IDE
の中にある
が必要です.開通して、環境ID
を記入すれば、プログラムの雲能力があります.もちろん、実用的なクラウドの開発は、既存のバックグラウンドアーキテクチャを排除していません.下のアーキテクチャを通じて、既存のバックグラウンドサービスとシームレスに対応できます.
それから、私はそれぞれ小さい時から手続きをして、サービスでこれらの雲資源をどう使うかを説明します.
雲の能力を使う
アプレット端
クライアントとは、ここでは小さなプログラムの端にあることを意味します.雲開発能力を使うなら、以下の配置をしてください.
app.json / game.json
においてフィールド"cloud": true
//app.js
App({
onLaunch: function () {
wx.cloud.init({
traceUser: true //
});
}
});
アプレット端初期化能力文書ユーザ管理において、クラウド能力を使用したウィジェットのアクセスユーザリストが表示され、デフォルトではアクセス時間の順序で並べられています.アクセス時間のトリガは、ウィジェット端で
wx.cloud.init
メソッドを呼び出し、traceUser
パラメータの値はtrue
です.職務に服する
クラウド関数でファイル、データベース、クラウド関数リソースを操作したいなら、私たちが提供したサービス端末SDKを使って操作してもいいです.まず、あなたのあるクラウド関数に入って、以下の依存パッケージをインストールします.
npm i --save tcb-admin-node
クラウド関数で初期化//
const app = require('tcb-admin-node');
//
// secretId secretKey。
// env
app.init({
secretId: 'xxxxx',
secretKey: 'xxxx',
env: 'xxx'
});
//
app.init()
//
app.init({
env: 'xxx'
});
サービス初期化ドキュメント保存
クラウド開発は、ストレージスペース、アップロードファイル、ダウンロードファイル、CDNによるファイルアクセスの加速などの能力を提供しています.
アプレット端
//
wx.chooseImage({
success: dRes => {
//
const uploadTask = wx.cloud.uploadFile({
cloudPath: `${Date.now()}-${Math.floor(Math.random(0, 1) * 10000000)}.png`, //
filePath: dRes.tempFilePaths[0], //
success: console.log,
fail: console.error
});
},
fail: console.error,
});
ウィジェットの保存ドキュメント職務に服する
const app = require('tcb-admin-node');
app.init();
app.uploadFile({
cloudPath: "cover.png",
fileContent: fs.createReadStream(`${__dirname}/cover.png`)
}).then((res) => {
console.log(res);
}).catch((err) => {
console.error(err);
});;
コンソールアップロードされたファイルはコンソールに表示されます.コンソールで写真の詳細を削除したりダウンロードしたりします.
文書全体の権限をコントロールすることもできます.ここでは具体的な紹介があります.
文書をサービスで保存します.
データベース
プログラムクラウドは文書型データベースを提供しています.データベースには複数のセット(関係型データのテーブルに相当)が含まれています.セットはJSON配列に近いです.配列の各オブジェクトは一つの記録で、記録の形式はJSON文書です.
各記録には一つの
API
フィールドがあり、この記録を一意にマークするために、一つの_id
フィールドが記録の作成者、すなわちウィジェットのユーザである.開発者は、_openid
をカスタマイズすることができますが、小さなプログラムで_id
をカスタマイズすることはできません._openid
は、文書作成時にシステムがウィジェットユーザによってデフォルトで作成したものであり、開発者は、ドキュメントを識別して配置するために使用することができる.データベース
_openid
は、ウィジェットとサービス端末の2つの部分に分けられており、ウィジェットAPI
は、厳格な起動権限制御を有しており、開発者は、ウィジェット内で直接にAPI
を呼び出して、非敏感データの操作を行うことができる.より高いセキュリティ要件があるデータについては、クラウド関数内でサービス端末API
を介して動作することができる.クラウド関数の環境はクライアントと完全に分離されており、クラウド関数上で秘密で安全な操作データベースがあります.データベース
API
は、削除を削除して調べる能力を含み、API
を使用してデータベースを操作するには、3ステップだけ必要である.データベース参照の取得、クエリーの作成/更新条件の作成、要求の発行.データベースを操作する前に、まずコンソールにAPI
を作成してください.アプレット端
const db = wx.cloud.database();
//
db.collection('photo').add({
data: {
photo: 'cloud://tcb-xxx/05ca1d38f86f90d66d4751a730379dfa6584dde05ab4-Ma9vMN_fw658.jpg',
title: ' '
}
});
//
db.collection('photo').get().then((res) => {
let data = res.data;
console.log(data);
});
//
// , _openid
{
photo: 'cloud://tcb-xxx/05ca1d38f86f90d66d4751a730379dfa6584dde05ab4-Ma9vMN_fw658.jpg',
title: ' ',
_openid: 'oLlMr5FICCQJV-QgVLVzKu2312121'
}
アプレット端データベースドキュメント職務に服する
const app = require('tcb-admin-node');
app.init();
const db = app.database();
db.collection('photo').limit(10).get().then((res) => {
console.log(res);
}).catch((err) => {
console.error(err);
});
//
// ,
{
photo: 'cloud://tcb-xxx/05ca1d38f86f90d66d4751a730379dfa6584dde05ab4-Ma9vMN_fw658.jpg',
title: ' ',
_openid: 'oLlMr5FICCQJV-QgVLVzKu4312121'
}
{
photo: 'cloud://tcb-xxx/0dc3e66fd6b53641e328e091ccb3b9c4e53874232e6bf-ZxSfee_fw658.jpg',
title: ' ',
_openid: 'DFDFEX343xxdf-QgVLVzKu3312121'
}
{
photo: 'cloud://tcb-xxx/104b27e339bdc93c0da15a47aa546b6e9c0e3359c315-L8Px2Y_fw658.jpg',
title: ' ',
_openid: 'DFDFEX343xxdf-QgVLVzKu3412121'
}
データベースドキュメントコンソール
コンソールでユーザー操作のデータを見ることができます.自分でコンソールにデータを追加したり、更新したり、削除したりすることもできます.
データ量が大きい場合は、クエリーを提供するインデックスの効率を設定できます.
データベースは、権限を設定することによって、各
collection
を制御することもできる.雲の関数
クラウド関数はクラウドのコードを実行しています.サーバーを管理する必要がなく、開発ツール内でワンタッチで展開をアップロードすれば、バックエンドコードを実行できます.
開発者は、クラウド関数内で呼び出しごとのコンテキスト(
collection
、appid
など)を取得することができ、複雑な認証機構を維持することなく、天然信頼できるユーザ登録状態を取得することができる(openid
).アプレット端
wx.cloud.callFunction({
name: 'addblog', //
data: { //
title: ' TCB',
content: ' 、 、 '
}
}).then(res => {
console.log(res)
}).catch((err) => {
console.error(err);
});
ウィジェット端雲関数ドキュメント職務に服する
const app = require("tcb-admin-node");
app.init();
app.callFunction({
name: 'addblog', //
data: { //
title: ' TCB',
content: ' 、 、 '
}
}).then((res) => {
console.log(res);
}).catch((err) => {
console.error(err);
});
翻訳機能付き文書コンソール
アップロード後のクラウド関数は、ここに羅列されます.
クラウド関数を呼び出すたびに、ここでログを見ることができます.また、テストのパラメータを作成して、デバッグすることもできます.
文法飴
大部分のインターフェースは現在、PromiseとAync/Awaitの2つの書き方をサポートしています.この節は
openid
を例にして、callFunction
にこの2つの書き方を紹介します.
tは、本質的にはAsync/Awai
に基づくシンタックス飴であり、Promise
を同期された書き方に変換するだけである.Promise
const app = require("tcb-admin-node");
app.init();
exports.main = (event, context, callback) => {
app.callFunction({
name: 'addblog', //
data: { //
title: ' TCB',
content: ' 、 、 '
}
}).then((res) => {
console.log(res);
callback(null, res.data);
}).catch((err) => {
callback(err);
});
};
Async/Awaitconst app = require("tcb-admin-node");
app.init();
exports.main = async (event, context) => {
let result = null;
try {
result = await app.callFunction({
name: 'addblog', //
data: { //
title: ' TCB',
content: ' 、 、 '
}
});
}
catch (e) {
return e;
}
return result;
};
クラウド関数で使用するには、Promise
以上の環境なので、天然サポートNode 8.9
詰法が必要ですが、小プログラムで使用するには、Async/Await
を追加的に導入する必要があります.開発者リソース
マイナープログラム・クラウド開発はテンセントクラウドのクラウド開発機能に基づいているので、テンセントクラウドとウィジェットの両方に多くの開発者資源があります.ここで参考にしてください.