6

isServerブロックを使用してデータを入力するタイミングがわかりません。明らかに、データベース呼び出しなどです。これはクライアントブラウザに表示されますか?

4

3 に答える 3

7

非公式の流星のよくある質問でアドバイスされているように、代わりにあなたのものをフォルダに入れることをお勧めします

上記のフォルダ構造を使用しない場合、つまり、このブロックを使用しない場合でも、if (Meteor.isServer) {...}このブロックはクライアントに送信されます/server。ただし、その中のすべてのコードは無視されます。

サーバー側のコードでは、サーバー上でのみ実行するコード、つまり公開機能と、より機密性が高く、ユーザーがアクセスできないデータを配置します。

于 2013-03-23T05:45:24.603 に答える
1

サーバーフォルダにない限り、クライアントに送信されると思います。グローバル変数の共有に関するコメントの1つに応えて、私はこのパターンを使用しています。クライアントフォルダーとサーバーフォルダーにそれぞれ同じグローバル変数を作成し、共有コードの場合はそれらのフォルダーの外に1回作成します。グローバル変数がすでに存在するかどうかをテストして、各場所でグローバル変数を初期化します。

MyVar = typeof MyVar === 'undefined' ? {} : MyVar;

次に、必要な場所にメソッドを配置します。たとえば、ユーザーが許可されているかどうかをテストするメソッドを持つUserオブジェクトがあります。サーバーのグローバルUserで1回、クライアントのグローバルUserで1回メソッドを宣言します。サーバーバージョンは、クライアントで使用できないユーザーオブジェクトのカスタムプロパティをチェックするため、メソッドは異なります。次に、クライアントとサーバーの両方で実行されるMeteor.methodsメソッドで、承認メソッドを呼び出すことができます。このメソッドは、クライアントとサーバーのどちらで実行されているかに応じて、異なるメソッドを呼び出します。

于 2014-12-17T14:53:21.277 に答える
1

私は今日同じ質問をしていて、このパッケージに出くわしました:

https://github.com/mquandalle/meteor-minifiers

Meteor.isServerMeteorはデフォルトでブロックを削除しないようです。このディスカッションを参照してください。

https://groups.google.com/forum/#!topic/meteor-talk/iHat47f6iGE

今のところ使っていませんが、有望そうです。

追加のパッケージを使用したくない場合は、clientおよびserverフォルダーを使用することをお勧めします。フォルダ内のファイルのみがclientクライアントに送信されます。

于 2015-02-27T09:31:50.463 に答える