0

Meteor アプリに管理ダッシュボードを実装して、ユーザー数、現在ログインしているユーザー、他のコレクションのメタデータ (カウント、プロットなど) などのデータを表示したいと考えています。

私の既存のパブリケーションはクライアント側で各ユーザー自身の「もの」のみを公開し、ユーザーのパブリケーションはセキュリティのためにログインしているユーザーのみを公開するため、いくつかの新しいインターフェイスが必要になると思います。

管理者権限を持つユーザーがログインしている場合、このデータを条件付きで収集してクライアントに公開する最良の方法は何でしょうか? 表示された各パラメーターを提供するメソッドのグループ、またはすべてのパラメーターを収集して大きな JSON オブジェクトとして返すダッシュボード メソッドのいずれかを考えています...好ましい方法はありますか?

4

1 に答える 1

1

提案されたソリューションはどれも機能します。それぞれのパフォーマンス特性に依存すると思いますが、これはおそらく自分で調べる必要があるものです.

率直に言って、これらをリアクティブなモノリシック JSON オブジェクトで返す場合、構造によっては、何かが変更されるたびに計算全体を再実行する必要があり、おそらく非効率的です。変更されたデータに対してのみ計算を再実行するだけなので、メソッドを別々にしておく方が良いようです。

simple:reactive-method パッケージまたはDiscover Meteor パターンをチェックして、テンプレート ヘルパーで Meteor メソッドを使用すると、少し簡単になります。私が提案するパターンは次のようなものです。

// lib JS
Meteor.methods({
  userCount: function() { 
    var user = Meteor.user();
    if (user && user.admin) { 
      return Meteor.users.find().count();
    }
  }
});

// Client JS
Template.dashboard.helpers({
  userCount: function() { 
    return ReactiveMethod.call('userCount');
  },
  isAdmin: function() { return Meteor.user().admin; }
});

// HTML 
<template name='dashboard'>
  {{#if isAdmin}}
     There are {{userCount}} users.
     ... <!-- any other stuff you want -->
  {{/if}}
</template>
于 2015-03-25T16:11:52.370 に答える