Meteor-quick-guide
流星-概要
Meteorの公式文書によると-
'_Meteorは、最新のWebおよびモバイルアプリケーションを開発するためのフルスタックJavaScriptプラットフォームです。 Meteorには、接続クライアントリアクティブアプリケーションを構築するための主要なテクノロジーセット、ビルドツール、およびNode.jsおよび一般的なJavaScriptコミュニティからの厳選されたパッケージセットが含まれています。_
特徴
- * Webおよびモバイル*-Meteorは、Web、AndroidおよびIOSアプリを開発するためのプラットフォームを提供します。
- ユニバーサルアプリ-Webブラウザとモバイルデバイス用の同じコード。
- パッケージ-インストールと使用が簡単な膨大な数のパッケージ。
- Meteor Galaxy -Meteorアプリ展開用のクラウドサービス。
利点
- 開発者は、サーバー側とクライアント側の開発にのみJavaScriptを必要とします。
- コーディングは非常にシンプルで初心者にも使いやすいです。
- Meteorアプリはデフォルトでリアルタイムです。
- 公式パッケージとコミュニティパッケージは時間を大幅に節約します。
制限事項
- Meteorは、大規模で複雑なアプリケーションにはあまり適していません。
- Meteorを使用する場合、多くの魔法が進行しているため、開発者は何らかの形で制限を受ける場合があります。
Meteor-環境のセットアップ
この章では、WindowsオペレーティングシステムにMeteorをインストールする方法を学習します。 Meteorを使用する前に、 NodeJS が必要です。 インストールしていない場合は、以下のリンクを確認してください。
前提条件
NodeJSは、Meteor開発に必要なプラットフォームです。 NodeJS環境のセットアップの準備ができていない場合は、リンク:/nodejs/nodejs_environment_setup [ NodeJS Environment Setup ]を確認してください。
Meteorをインストールする
https://www.meteor.com/install [このページ]から公式の流星インストーラーをダウンロードしてください
インストール中にエラーが発生した場合は、管理者としてインストーラーを実行してください。 インストールが完了すると、Meteorアカウントを作成するように求められます。
Meteorインストーラーのインストールが完了したら、コマンドプロンプトウィンドウで次のコードを実行して、すべてが正しくインストールされているかどうかをテストできます。
出力は次のようになります-
Meteor-最初のアプリケーション
この章では、最初のMeteorアプリケーションを作成する方法を学びます。
ステップ1-アプリを作成する
アプリを作成するには、コマンドプロンプトウィンドウから meteor create コマンドを実行します。 アプリの名前は meteorApp になります。
ステップ2-アプリを実行する
このコマンドはいくつかのプロセスを開始します。これは次の画像で確認できます。
手順3-結果の確認
これで、 http://localhost:3000/ アドレスを開いて、最初のMeteorアプリの外観を確認できます。
流星-テンプレート
Meteorテンプレートは、3つの最上位タグを使用しています。 最初の2つは head と body です。 これらのタグは、通常のHTMLと同じ機能を実行します。 3番目のタグは template です。 これは、HTMLをJavaScriptに接続する場所です。
シンプルなテンプレート
次の例は、これがどのように機能するかを示しています。 name = "myParagraph" 属性を持つテンプレートを作成しています。 template タグは body 要素の下に作成されますが、画面にレンダリングする前に含める必要があります。 \ {\ {> myParagraph}} 構文を使用してそれを行うことができます。 このテンプレートでは、二重中括弧*(\ {\ {text}})を使用しています。 これは *Spacebars と呼ばれる流星テンプレート言語です。
JavaScriptファイルでは、テンプレートへの接続となる* Template.myParagraph.helpers(\ {})メソッドを設定しています。 この例では、 *text ヘルパーのみを使用しています。
meteorAppl
meteorApp.js
変更を保存した後、出力は次のようになります-
ブロックテンプレート
次の例では、 \ {\ {#each paragraphs}} を使用して paragraphs 配列を反復処理し、各値に対してテンプレート name = "paragraph" を返します。
meteorAppl
- 段落*ヘルパーを作成する必要があります。 これは、5つのテキスト値を持つ配列になります。
meteorApp.js
これで、画面に5つの段落が表示されます。
流星-コレクション
この章では、 MongoDB コレクションの使用方法を学習します。
コレクションを作成する
次のコードで新しいコレクションを作成できます-
meteorApp.js
データを追加
コレクションが作成されたら、 insert メソッドを使用してデータを追加できます。
meteorApp.js
データを探す
meteorApp.js
コンソールには、以前に挿入したデータが表示されます。
検索パラメーターを追加することで同じ結果を得ることができます。
meteorApp.js
データを更新する
次のステップは、データを更新することです。 コレクションを作成して新しいデータを挿入したら、 update メソッドを使用できます。
meteorApp.js
コンソールには、コレクションが更新されたことが表示されます。
データを削除
meteorApp.js
コンソールには空の配列が表示されます。
コレクションからすべてを削除する場合は、同じメソッドを使用できますが、 id の代わりに空のオブジェクト \ {} を使用します。 セキュリティ上の理由から、サーバーでこれを行う必要があります。
meteorApp.js
他のパラメーターを使用してデータを削除することもできます。 前の例のように、Meteorはサーバーからこれを行うことを強制します。
meteorApp.js
コマンドウィンドウからデータが削除されていることがわかります。
Meteor Collections Remove Server
流星-フォーム
この章では、Meteorフォームを操作する方法を学習します。
テキスト入力
最初に、テキスト入力フィールドと送信ボタンを持つ form 要素を作成します。
meteorAppl
JavaScriptファイルで、 submit イベントを作成します。 ブラウザの更新を停止するには、デフォルトのイベント動作を防ぐ必要があります。 次に、入力フィールドの内容を取得し、 textValue 変数に割り当てます。
次の例では、そのコンテンツのみを開発者コンソールに記録します。 そして最後に必要なことは、入力フィールドをクリアすることです。
meteorApp.js
入力フィールドに「Some text …」と入力して送信すると、コンソールは入力したテキストを記録します。
ラジオボタン
同様の概念をラジオボタンに使用できます。
meteorAppl
meteorApp.js
最初のボタンを送信すると、コンソールに次の出力が表示されます。
チェックボックス
次の例は、チェックボックスの使用方法を示しています。 同じプロセスを繰り返していることがわかります。
meteorAppl
meteorApp.js
フォームが送信されると、チェックされた入力は true として記録され、チェックされていない入力は false として記録されます。
ドロップダウンを選択
次の例では、 select 要素の使用方法を学習します。 change イベントを使用して、オプションが変更されるたびにデータを更新します。
meteorAppl
meteorApp.js
3番目のオプションを選択すると、コンソールはオプション値を記録します。
流星-イベント
この章では、 tag、class 、および id をイベントセレクタとして使用する方法を学習します。 イベントの操作は非常に簡単です。
HTMLテンプレートに3つの要素を作成しましょう。 最初のものは p 、2番目のものは myClass クラス、最後のものは myId idです。
meteorAppl
JavaScriptファイルでは、上で作成した3つの要素に対して3つのイベントを設定しています。 click イベントの後に p、.myClass および*#myId *を追加していることがわかります。 これらは、前述の*セレクタ*です。
meteorApp.js
これをテストするには、まず PARAGRAPH をクリックしてから、 CLASS ボタン、最後に ID ボタンをクリックします。 次のコンソールログを取得します。
上記の例に従って、他のすべてのJavaScriptイベント(クリック、dbclick、コンテキストメニュー、マウスダウン、マウスアップ、マウスオーバー、マウスアウト、マウスムーブ)を使用できます。
流星-セッション
セッションは、ユーザーがアプリを使用している間にデータを保存するために使用されます。 このデータは、ユーザーがアプリを離れると削除されます。
この章では、セッションオブジェクトを設定し、データを保存し、そのデータを返す方法を学びます。 基本的なHTMLセットアップを使用します。
meteorAppl
ここで、* Session.set()メソッドを使用して *myData をローカルに保存します。 メソッドが設定されると、* Session.get()*メソッドを使用してメソッドを返すことができます。
meteorApp.js
コンソールを確認すると、保存されたデータが記録されていることがわかります。
次の章では、Session変数を使用してテンプレートを自動更新する方法を学びます。
流星-トラッカー
トラッカーは、セッション変数が変更されるとテンプレートを自動更新するために使用される小さなライブラリです。 この章では、トラッカーの仕組みを学びます。
最初に、セッションの更新に使用される*ボタン*を作成します。
meteorAppl
次に、開始セッション値 myData を設定し、 mySession オブジェクトを作成します。 Tracker.autorun メソッドは、 mySession を監視するために使用されます。 このオブジェクトが変更されるたびに、テンプレートは自動更新されます。 テストするために、更新用のクリックイベントを設定します。
meteorApp.js
[CLICK ME]ボタンを5回クリックすると、セッションが更新されるたびにトラッカーが新しい値を記録していることがわかります。
流星-パッケージ
Meteorは、アプリの開発中に使用できる数千のコミュニティパッケージを提供します。
パッケージを追加する
公式のMeteorパッケージサーバーhttps://atmospherejs.com/[こちら]を確認できます。 必要なパッケージを検索して、コマンドプロンプトウィンドウに追加するだけです。 たとえば、アプリに http パッケージを追加する場合は、次のコードを実行して実行できます-
パッケージの削除
同様の原則は、パッケージを削除するために使用することができます-
パッケージの更新
次のコードを実行してパッケージを更新できます-
現在のパッケージを確認する
また、現在のアプリケーションが使用しているパッケージを確認することもできます。
パッケージのメンテナンス
パッケージの名前に*:*が含まれている場合、それはコミュニティパッケージであることを意味しますが、プレフィックスのないパッケージはMeteor Developmentグループによって維持されます。
Meteor Development Groupパッケージの追加
コミュニティパッケージの追加
流星-コアAPI
あなたはサーバーまたはクライアント側でのみ実行するようにコードを制限したい場合は、次のコードを使用することができます-
meteorApp.js
アプリがCordovaバンドリングを使用している場合にのみ実行するようにコードを制限できます。
一部のプラグインは、サーバーとDOMの準備ができるまで待つ必要があります。 次のコードを使用して、すべてが始まるまで待つことができます。
次の表に、他のいくつかのコアAPIメソッドを示します。
Sr.No. | Method & Details |
---|---|
1 |
Meteor.wrapAsync(function) 非同期コードのラッピングに使用し、同期コードに変換します。 |
2 |
Meteor.absoluteUrl([path], [options]) アプリを指す絶対URLの生成に使用されます。 |
3 |
Meteor.settings 展開構成の設定に使用されます。 |
4 |
Meteor.publish(name, function) レコードをクライアントに公開するために使用されます。 |
流星-チェック
checkメソッドは、引数または型がパターンに一致しているかどうかを調べるために使用されます。
チェックパッケージのインストール
コマンドプロンプトウィンドウを開き、パッケージをインストールします。
チェックを使用する
次の例では、 myValue が文字列かどうかを確認します。 それは真実なので、アプリはエラーなしで続行します。
meteorApp.js
この例では、 myValue は文字列ではなく数値であるため、コンソールはエラーを記録します。
meteorApp.js
マッチテスト
meteorApp.js
両方のキーが文字列であるため、テストは true です。 コンソールは最初のオプションを記録します。
meteorApp.js
流星-ブレイズ
Blazeは、ライブリアクティブテンプレートを構築するためのMeteorパッケージです。
レンダリング方法
このメソッドは、テンプレートをDOMにレンダリングするために使用されます。 最初に、レンダリングされる myNewTemplate を作成します。 また、親要素として使用される myContainer を追加するため、 render メソッドはテンプレートをレンダリングする場所を認識します。
meteorAppl
次に、2つの引数を取るレンダー関数を作成します。 1つ目はレンダリングされるテンプレートで、2つ目は上記の親要素です。
meteorApp.js
データでレンダリング
リアクティブにデータを渡す必要がある場合は、 renderWithData メソッドを使用できます。 HTMLは前の例とまったく同じです。
meteorAppl
meteorApp.js
メソッドを削除
meteorAppl
この例では、3秒後に削除されるテンプレートをレンダリングしています。 テンプレートを削除するために使用している Blaze.Remove メソッドに注目してください。
meteorApp.js
次の表は、使用可能な他の方法を示しています。
Sr.No. | Method & Details |
---|---|
1 |
Blaze.getData([elementOrView]) レンダリング要素からデータを取得するために使用されます。 |
2 |
Blaze.toHTML(templateOrView) テンプレートまたはビューを文字列にレンダリングするために使用されます。 |
3 |
Blaze.toHTMLWithData(templateOrView, data) 追加のデータを含む文字列にテンプレートまたはビューをレンダリングするために使用されます。 |
4 |
new Blaze.View([name], renderFunction) DOMの新しいBlaze反応部分を作成するために使用されます。 |
5 |
Blaze.currentView 現在のビューを取得するために使用されます。 |
6 |
Blaze.getView([element]) 現在のビューを取得するために使用されます。 |
7 |
Blaze.With(data, contentFunc) コンテキスト付きのコンテンツをレンダリングするビューを構築するために使用されます。 |
8 |
Blaze.If(conditionFunc, contentFunc, [elseFunc]) 条件付きコンテンツをレンダリングするビューの構築に使用されます。 |
9 |
Blaze.Unless(conditionFunc, contentFunc, [elseFunc]) いくつかの条件付きコンテンツ(反転 Blaze.if )をレンダリングするビューの構築に使用されます。 |
10 |
Blaze.Each(argFunc, contentFunc, [elseFunc]) すべてのアイテムの contentFunct をレンダリングするビューの構築に使用されます。 |
11 |
new Blaze.Template([viewName], renderFunction) 名前とコンテンツを含む新しいBlazeビューを構築するために使用されます。 |
12 |
Blaze.isTemplate(value) 値がテンプレートオブジェクトの場合、trueを返すために使用されます。 |
流星-タイマー
Meteorは、独自の setTimeout および setInterval メソッドを提供します。 これらのメソッドは、すべてのグローバル変数が正しい値を持っていることを確認するために使用されます。 通常のJavaScript setTimout および setInterval のように機能します。
タイムアウト
これは Meteor.setTimeout の例です。
コンソールで、アプリが起動するとタイムアウト関数が呼び出されることがわかります。
間隔
次の例は、間隔を設定およびクリアする方法を示しています。
meteorAppl
間隔呼び出しのたびに更新される初期 counter 変数を設定します。
meteorApp.js
コンソールは、更新された counter 変数を3秒ごとに記録します。 CLEAR ボタンをクリックして、これを停止できます。 これにより、 clearInterval メソッドが呼び出されます。
流星-EJSON
EJSONは、 Date および Binary 型をサポートするJSON構文の拡張です。
EJSONをインストールする
EJSONパッケージをインストールするには、コマンドプロンプトウィンドウから追加する必要があります。
日付の例
コンソールは正しい日付値を記録します。
バイナリの例
同じことがバイナリタイプに適用できます。
コンソールが新しいデシリアライズされた値を記録していることがわかります。
文字列化
コンソールで新しい値を確認できます。
Sr.No. | Method & Details |
---|---|
1 |
EJSON.parse(string) 文字列をEJSON値に解析するために使用されます。 |
2 |
EJSON.stringify(value) 値を文字列にシリアル化するために使用されます。 |
3 |
EJSON.fromJSONValue(value) JSONからEJSON値をデシリアライズするために使用されます。 |
4 |
EJSON.toJSONValue(value) EJSON値をJSONにシリアル化するために使用されます。 |
5 |
EJSON.equals(value1, value2) 2つの値が等しいかどうかを比較するために使用されます。 |
6 |
EJSON.clone(value) 値の詳細コピーを返すために使用されます。 |
7 |
EJSON.newBinary EJSONがシリアル化できるバイナリデータを割り当てるために使用されます。 |
8 |
EJSON.isBinary(x) 値がバイナリデータかどうかを確認するために使用されます。 |
9 |
EJSON.addType(name, factory) カスタムEJSONタイプの作成に使用されます。 |
10 |
customType.typeName() カスタムタイプの名前を返すために使用されます。 |
11 |
customType.toJSONValue() カスタムタイプのシリアル化に使用されます。 |
12 |
customType.clone() カスタムタイプのディープコピーを返すために使用されます。 |
13 |
customType.equals(otherValue) カスタムタイプの値と他の値の比較に使用されます。 |
流星-HTTP
このパッケージは、HTTPリクエストAPIに get、post、put 、および delete メソッドを提供します。
パッケージをインストール
コマンドプロンプトウィンドウで次のコードを実行して、このパッケージをインストールします。
CALLメソッド
これは、 GET 、 POST 、 PUT 、および DELETE 引数を使用できる汎用的な方法です。 次の例は、 GET 引数の使用方法を示しています。 この章の例では、https://jsonplaceholder.typicode.com/[このWebサイト]からの偽のREST APIを使用します。
このメソッドは4つの引数を使用していることがわかります。 最初の引数 GET についてはすでに述べました。 2つ目はAPI URLです。 3番目の引数は空のオブジェクトで、オプションのパラメーターを設定できます。 最後のメソッドは非同期コールバックであり、エラーを処理して応答を処理できます。
GETメソッド
前の例は両方とも同じ出力を記録します。
POSTメソッド
このメソッドでは、サーバーに送信する必要があるデータ( postData )を2番目の引数として設定しています。 他のすべては、 GET リクエストと同じです。
コンソールは postData オブジェクトを記録します。
PUTメソッド
これで、更新されたオブジェクトがコンソールに表示されます。
DELメソッド
コンソールには、削除プロセスが成功したことが表示されます。
流星-メール
このパッケージは、Meteor Appからメールを送信する必要がある場合に使用されます。
ステップ1-パッケージの追加
コマンドプロンプトウィンドウを開き、次のコマンドを実行します-
ステップ2-Mailgunアカウント
アカウントhttps://mailgun.com/signup[here]を作成する必要があります。 これは、Meteorアプリのデフォルトのメールプロバイダーです。
ログインしたら、 Domains タブを開き、 Domain Name の下にある sandbox URL をクリックします。 新しいページが開き、 Default SMTP Login および Default Password が見つかります。 MAIL_URL 環境変数を作成するには、これら2つが必要です。
メールを送る
有効な MAIL_URL を作成するには、 YOUR_DEFAULT_SMTP_LOGIN および YOUR_DEFAULT_PASSWORD の代わりにMailgun認証情報を挿入するだけです。
アプリを実行すると、メールがあなたのアドレスに送信されます。
流星-資産
静的サーバーアセットは、アプリ内の private サブフォルダーにあります。 次の例では、単純なJSONファイルのデータを使用する方法を学習します。
手順1-ファイルとフォルダーの作成
ステップ2-テキストの取得
ファイルからデータを読み取れるようにするには、 Asssets.getText メソッドを使用します。 これは、サーバー側からのみ実行できることに注意してください。 JSONを使用しているため、解析する必要があります。
以下は、コマンドプロンプトウィンドウの出力です。
ステップ3-EJSONファイルの作成
このファイルを private フォルダー内に作成します。 このファイルにはバイナリデータが含まれます "myBinary":\ {"$ binary": "c3VyZS4 ="}
ステップ4-バイナリを取得する
EJSONファイルを読み取るには、 Assets.getBinary メソッドを使用できます。
コマンドプロンプトはEJSON値を記録します。
流星-セキュリティ
この章では、アプリを保護する方法と、アプリを開発する際に考慮すべきことを学習します。
自動公開および自動保護
パブリッシュおよびサブスクライブの章で説明する* Meteor.publish()および Meteor.subscribe()*メソッドを使用して、一部のデータをクライアントにパブリッシュできます。
アプリの開発を開始したらすぐに両方のパッケージを削除することをお勧めします。これにより、後でコードを変更および更新する必要がなくなります。
サーバー側のメソッドを使用する
常にサーバー上でメソッドを作成する必要があります。 サーバーで* Meteor.methods()を使用し、クライアントで Meteor.call()*を使用して実行できます。 これについては、メソッドの章で詳しく説明します。
追加のセキュリティ
アプリにセキュリティのレイヤーを追加する場合は、次のような他のMeteorパッケージの使用を検討する必要があります-
- Browser Policyを使用して、アプリにロードする必要のある外部リソースを制御できます。
- Checkパッケージを使用して、ユーザー入力タイプを処理前に確認できます。
- Audit Arguments Checkは、処理前にすべてのパラメーターが正しくチェックされることを保証するパッケージです。 一部のパラメーターを逃した場合、このパッケージは通知します。
- Mylarパッケージは、セキュリティのレイヤーを追加できます。 そのような保護が必要な場合は、チェックアウトできます。
流星-ソート
データベースから取得したら、データをソートできます。 次の例では、 Users コレクションを作成します。 コレクションデータを名前でソートするには、 sort 引数( \ {sort:\ {name:1}} )を使用します。 番号 1 は、昇順を設定するために使用されます。 降順を使用する場合は、代わりに -1 を使用します。
同じ方法でメールでデータをソートできます。
最後に、参加日で並べ替えることができます。
Meteor-アカウント
このパッケージにより、完全なユーザー認証機能が可能になります。 コマンドプロンプトウィンドウで次のコードを実行して追加できます。
認証の例
この例では、基本認証を示します。 register、login 、および home テンプレートを作成します。 currentUser がある場合(ユーザーが正常に登録またはログインしている場合)、 home テンプレートが表示されます。 currentUser がない場合、 register および login テンプレートが表示されます。
meteorAppl
最初に、 register イベントを作成する必要があります。 この関数は、レジスタ入力を読み取り、新しいユーザーを作成して、データベースに保存します。
2番目のイベントは login です。 今回は、関数は login テンプレートから入力を読み取り、電子メールとパスワードが有効な場合はユーザーをログインし、有効でない場合はエラーを返します。
そして最後に、ボタンがクリックされると、ユーザーをログアウトするために logout イベントが使用されます。
meteorApp.js
アプリが起動すると、次のページが表示されます。
登録*フォームに電子メールとパスワードを入力すると、新しいユーザーを登録してログインできます。 コンソールがユーザー *id を記録し、 home テンプレートがレンダリングされることがわかります。
電子メールとパスワードが正しい場合、 login イベントはデータベースをチェックし、ユーザーをログインさせます。 そうでない場合、コンソールはエラーを記録します。
ユーザーが LOGOUT ボタンをクリックすると、アプリはユーザーをログアウトし、 register および login テンプレートを表示します。
流星-メソッド
Meteorメソッドは、サーバー側で記述された関数ですが、クライアント側から呼び出すことができます。
サーバー側では、2つの簡単なメソッドを作成します。 最初の引数は5を引数に追加し、2番目の引数は 10 を追加します。
メソッドを使用する
meteorApp.js
アプリを起動すると、計算された値がコンソールに表示されます。
エラー処理
エラーを処理するには、 Meteor.Error メソッドを使用できます。 次の例は、ログインしていないユーザーのエラーを処理する方法を示しています。
コンソールには、カスタマイズされたエラーメッセージが表示されます。
Meteor-Package.js
この章では、独自の流星パッケージを作成する方法を学びます。
パッケージを作成する
パッケージが作成されるデスクトップに新しいフォルダーを追加しましょう。 コマンドプロンプトウィンドウを使用します。
これで、上記で作成したフォルダーにパッケージを作成できます。 コマンドプロンプトから次のコマンドを実行します。 Username はMeteor Developerのユーザー名で、 package-name はパッケージの名前です。
パッケージを追加する
アプリにローカルパッケージを追加できるようにするには、Meteorにローカルフォルダーからパッケージをロードするよう指示する ENVIRONMENT VARIABLE を設定する必要があります。 コンピューターのアイコンを右クリックして、「プロパティ/システムの詳細設定/環境変数/新規」を選択します。
変数名*は PACKAGE_DIRSでなければなりません。 変数値*は、作成したフォルダへのパスでなければなりません。 この場合、 C:\ Users \ username \ Desktop \ meteorApp \ packages 。
新しい環境変数を追加した後、*コマンドプロンプト*を再起動することを忘れないでください。
次のコードを実行して、アプリにパッケージを追加できます-
パッケージファイル
作成したパッケージには、次の4つのファイルが含まれています。
- package-name-test.js
- package-name.js
- package.js
- README.md
テストパッケージ(package-name-test.js)
Meteorは、テスト用の tinytest パッケージを提供しています。 コマンドプロンプトウィンドウで次のコマンドを使用して、最初にインストールしましょう。
パッケージをテストするには、コマンドプロンプトでこのコードを実行します。
次の結果が得られます。
package.jsファイル
これは、コードを記述できるファイルです。 パッケージの簡単な機能を作成しましょう。 パッケージは、コンソールにテキストを記録します。
packages/package.js
package-name.jsファイル
これは、いくつかのパッケージ構成を設定できるファイルです。 後で戻りますが、今はアプリで使用できるように myPackageFunction をエクスポートする必要があります。 これを Package.onUse 関数内に追加する必要があります。 ファイルは次のようになります。
packages/package-name.js
パッケージを使用する
これで、 meteorApp.js ファイルから* myPackageFunction()*を最終的に呼び出すことができます。
packages/package.js
コンソールはパッケージのテキストを記録します。
これはサンプルファイルです…
Meteor-公開および購読
コレクションの章ですでに説明したように、すべてのデータはクライアント側で利用できます。 これは、発行および購読メソッドで処理できるセキュリティ問題です。
自動公開の削除
この例では、次のデータで PlayersCollection コレクションを使用します。 チャプター自体に集中できるように、このコレクションを準備しました。 MeteorアプリでMongoDBコレクションを作成する方法がわからない場合は、リンク:/meteor/meteor_collections [collections]の章を確認してください。
Meteor Publish and Subscribe Database Data
データを保護するには、クライアント側でデータの使用を許可していた autopublish パッケージを削除する必要があります。
この手順の後、クライアント側からデータベースデータを取得することはできません。 コマンドプロンプトウィンドウでサーバー側からのみ表示できます。 次のコードをチェックアウトします-
meteorApp.js
コマンドプロンプト*ウィンドウには、4つのオブジェクトを含むコレクション全体が表示されますが、 developersコンソール*には空の配列が表示されます。 これでアプリがより安全になりました。
パブリッシュおよびサブスクライブの使用
クライアントがデータを使用できるようにしたいとしましょう。 このために、サーバーで* Meteor.publish()*メソッドを作成する必要があります。 このメソッドは、データをクライアントに送信します。
クライアント側でそのデータを受信して使用できるようにするために、* Meteor.subscribe()*メソッドを作成します。 例の最後では、データベースを検索しています。 このコードは、クライアント側とサーバー側の両方で実行されています。
データが developers console と command prompt ウィンドウの両方に記録されていることがわかります。
クライアントデータのフィルタリング
データの一部を公開することもできます。 この例では、 name = "John" でデータを公開しています。
このコードを実行すると、コマンドプロンプト*はすべてのデータをログに記録しますが、クライアント側の*コンソール*は *John という名前の2つのオブジェクトを記録します。
流星-構造
Meteorには、開発者がアプリを構造化するのに役立つ特別なフォルダーがいくつか用意されています。
クライアント
サーバ
このフォルダーのファイルは、サーバー側*でのみ実行されます。 これは、 methods、Meteor.Publish()関数、およびその他の機密データを保持する場所です。 すべての認証データをここに保持する必要があります。 このフォルダー内のファイルに Meteor.isServer()*を使用する必要はありません。
パブリック
これは、画像、favicons、およびクライアントに提供される他のすべてのデータを配置する場所です。
非公開
このフォルダのファイルには、サーバーからのみアクセスできます。 それらはクライアントから隠されます。 サーバーのみが使用する JSON または EJSON ファイルをこのフォルダー内に配置できます。
クライアント/互換性
一部のJavaScriptライブラリは、変数をグローバルとしてエクスポートします。 新しい変数スコープにラップされずに実行する必要があるファイルには、このフォルダーを使用します。
残り
残りのフォルダーは、必要に応じて構造化できます。 上記のフォルダーの外側に配置されるコードは、*クライアント*および*サーバー*側で実行されます。 これは、モデルを定義できる良い場所です。
ロード順
ファイルのロード順を知ることは常に良いことです。 次のリストは、Meteor公式ドキュメントから引用したものです。
- HTMLテンプレートファイルは常に他のすべての前にロードされます
- * main。*で始まるファイルは最後にロードされます
- lib/ ディレクトリ内のファイルが次にロードされます
- 深いパスを持つファイルが次にロードされます
- その後、ファイルはパス全体のアルファベット順にロードされます
Meteor-展開
Meteorの素晴らしい点の1つは、アプリを簡単に展開できることです。 アプリが完成したら、簡単に世界と共有する方法があります。 必要なのは、コマンドプロンプトウィンドウで次のコードを実行することだけです。
Meteor開発者アカウント username および password を入力するよう求められます。
これで、アプリの名前を持つ次のリンクのブラウザからアプリにアクセスできるようになります。
Meteor-モバイルで実行
この章では、Androidデバイスでアプリを実行する方法を学習します。 Meteorが最近Windowsオペレーティングシステムにこの機能を追加したため、meteorアプリを1.3ベータ版に更新する必要があります。
注-このチュートリアルの執筆時点では、Meteor 1.3バージョンはベータ版です。 製品版がリリースされたら、これを更新します。
最新のMeteorバージョンを使用するため、コマンドプロンプトウィンドウで次のコードを実行してバージョンを更新できます。
ステップ1-Android SDKをインストールする
次の表のリンクを使用して、Android SDKをインストールします。
Sr.No. | Software & Description |
---|---|
1 |
Java Development Kit & Android SDK モバイル環境でMeteorアプリを実行するには、Android SDKが必要です。 インストールしていない場合は、リンク:/android/android_environment_setup [Android Environment Setup]チュートリアルを確認してください。 |
ステップ2-Androidプラットフォームを追加する
次に、プロジェクトにAndroidプラットフォームを追加する必要があります。
ステップ3-Androidエミュレーターでアプリを実行する
Androidエミュレーターでアプリを実行するには、行の最後で –verbose コマンドを使用して、起動プロセス中に発生する可能性のあるエラーを特定します。
Androidデバイスでアプリを実行する
Androidエミュレーターは低速であるため、デバイスでアプリを直接実行する方が常に優れたオプションです。 デバイスをコンピューターに接続して、開発者モードとUSBデバッグを有効にすることで、これを実行できます。
このプロセスは、特定のデバイスによって異なります。 *設定/バージョン情報*で*ビルド番号*を見つけて7回タップする必要があります。 あなたが開発者であるという通知を受け取り、*開発者オプション*のロックが解除されます。
設定*をもう一度検索して、 USBデバッグ*を有効にします。
コマンドプロンプトで次のコマンドを使用して、モバイルデバイスでMeteorアプリを実行できます。
Meteor-ToDoアプリ
この章では、簡単なToDoアプリを作成する方法を学びます。
ステップ1-アプリを作成する
コマンドプロンプトを開き、次のコマンドを実行します-
アプリを表示するには、 meteor コマンドでアプリを実行し、 http://localhost:3000 に移動する必要があります
ステップ2-フォルダーとファイルの作成
デフォルトのファイル構造の代わりに、リファクタリングします。 todo-appl、todo-app.css 、 todo-app.js を作成する client フォルダーを作成しましょう。
また、 server.js を含む server フォルダーも作成します。
最後に、内部に task-collection.js ファイルを含む collections フォルダーを作成しましょう。
次の画像でアプリの構造を見ることができます-
ステップ3-client/todo-appl
開発の最初のステップは、アプリのHTMLを作成することです。 新しいタスクを追加できる入力フィールドが必要です。 タスクは、*削除*および*チェック*機能を備えたリスト形式になります。 完了したタスクを表示または非表示にする機能もあります。
ステップ4-collections/task-collection.js
これは、新しいMongoDBコレクションを作成する場所なので、サーバー側とクライアント側の両方で使用できます。
ステップ5-server/server.js
サーバー側でアプリのメソッドを定義します。 これらのメソッドはクライアントから呼び出されます。 このファイルでは、データベースクエリも公開します。
ステップ6-client/todo-app.js
これはメインクライアントJavaScriptファイルです。 このファイルはリファクタリングすることもできますが、ここですべてのクライアント側コードを記述します。 まず、サーバーで公開されている task コレクションをサブスクライブします。 次に、アプリロジックを処理できるように*ヘルパー*を作成し、最後に、サーバーからメソッドを呼び出す*イベント*を定義します。
ステップ7-デプロイ
開発が完了したら、コマンドプロンプトウィンドウからアプリを展開できます。 アプリのデプロイ名は my-first-todo-app になります。
- http://my-first-todo-app.meteor.com/*を開いて、アプリの使用を開始できます。
Meteor-ベストプラクティス
前の章で、Meteor開発のベストプラクティスのいくつかを既に説明しました。 以下は、Meteorを使用する際に留意すべきベストプラクティスの一部です。
ディレクトリ構造
Meteorアプリのディレクトリ構造に関する厳密なルールはありません。 ガイドラインの詳細については、リンク:/meteor/meteor_structure [Meteor-Structure]の章をご覧ください。
使用方法
クライアントから insert、update 、 remove を直接呼び出すのではなく、機密データを扱う場合は常にlink:/meteor/meteor_methods [Meteor-Methods]を使用する必要があります。
データ管理
link:/meteor/meteor_publish_subscribe [Publish and Subscribe]メソッドを使用してデータを保護します。 すべてのクライアントがデータを利用できるようにする場合は、代わりにパブリケーション名として null を使用できます。 データの小さな塊を公開すると、アプリのパフォーマンスも向上します。
データを検証する
コレクション内に保存されるすべてのデータを検証する必要があります。 最適なオプションの1つはhttps://atmospherejs.com/aldeed/collection2[collection2]パッケージです。 このパッケージを使用すると、サーバーとクライアント側の検証を簡単に設定できます。
セッションを最小化
ルーター
Meteorルーティングには、2つの最も一般的なオプションがあります。 小さなアプリの場合、https://atmospherejs.com/iron/router [Iron Router]があります。 データが変更されると、自動的に再実行されます。 大きなアプリの場合、https://atmospherejs.com/kadira/flow-router [Flow Router]があります。 このルーターを使用すると、テンプレートの再レンダリングを最適化する自由度が増しますが、少し定型的なコードが必要になります。
パッケージ
パッケージをアプリ内で使用する前に、パッケージが定期的に更新されているかどうかを常に確認してください。