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 回答