javascript - Meteor admin 显示其他包的集合

标签 javascript meteor collections cron

我正在尝试获取Meteor Admin显示 SyncedCron 的条目。 Meteor 管理员要求您attachSchema以便登记收藏。我已经用我自己的简单集合做到了这一点,例如基本事件集合,但无法弄清楚我如何在管理员中看到 SyncedCron 作业:

SyncedCron 在我的应用程序中运行得很好。文档说它是“uses a collection called cronHistory to syncronize between processes”。如果我运行:

> SyncedCron._entries
   { name: 'LExXMbhKE7bJF5nay notification 2',
 schedule: [Function],
 job: [Function],
 _timer: { clear: [Function] } },
'LExXMbhKE7bJF5nay notification 3':
 { name: 'LExXMbhKE7bJF5nay notification 3',
  schedule: [Function],
  job: [Function],
  _timer: { clear: [Function] } } }

我检查 cronHistory 是否存在:

Mongo.Collection.getAll();

{ name: 'cronHistory',
instance:
 { _makeNewID: [Function],
   _transform: null,
   _connection: [Object],
   _collection: [Object],
   _name: 'cronHistory',
   _driver: [Object],
   _restricted: false,
   _insecure: undefined,
   _validators: [Object],
   _prefix: '/cronHistory/',
   before: [Object],
   _hookAspects: [Object],
   after: [Object],
   hookOptions: [Object],
   direct: [Object] },
options: undefined }

因此,我尝试在为 Meteor Admin 注册之前附加一个架构:

cronHistory.attachSchema(new SimpleSchema({
name: {
type: String,
label: "Name"
}
}));

并得到错误:

ReferenceError: cronHistory is not defined

有什么想法吗?

最佳答案

我相信 SyncedCron 写入 cronHistory 集合,但不导出集合句柄。根据this ,该集合应该可以通过 SyncedCron._collection 访问。

鉴于此,您应该能够执行以下操作:

Meteor.startup(function () {
  var root = Meteor.isClient ? window : global;
  root.CronHistory = SyncedCron._collection;
  root.CronHistory.attachSchema(...);
});
<小时/>

更新答案

根据我们下面的对话,这是一个非常困难的问题。您有两个包,您的应用程序都定义和使用集合,并且排序需要精确才能使所有内容正常工作。这就是我要做的:

  1. 像在应用程序中定义任何其他集合一样定义 CronHistory 集合,并像平常一样附加架构。

  2. CronHistory 以及应用中的其余集合添加到您的 AdminConfig 中。

  3. 使用local version SyncedCron 并修改它以查找全局定义的 CronHistory 集合。请参阅this post一些提示。请注意,您需要删除 new Mongo.Collection(options.collectionName); 行。

关于javascript - Meteor admin 显示其他包的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35930124/

相关文章:

javascript - 如何从 Meteor 中的文件夹中读取所有 JSON 文件?

java - 具有静态泛型的类型安全、泛型、空集合

javascript - 从特定的 li 中获取复选框值

javascript - 元素的 previousSublings 计数

javascript - LocalForage、图像和 Blob

javascript - 当 src 未知时隐藏图像

javascript - meteor 发布/订阅不工作

ios - Meteor/Cordova 应用程序无法下载用于自动更新的 manifest.json。出了什么问题?

scala - 如何连接作为 map 值的列表?

java - 以循环方式从 map /任何集合中获取值