0

我正在开发一个测试框架,我想在每次运行时重置所有集合。

我在使用 时遇到问题Meteor.users,因为它在包环境中未定义。

是否有任何解决方法可以从中清理 Meteor.users 集合?

4

2 回答 2

1

当涉及到包中的符号可用性时,包加载顺序和导出变量很重要。

为了获得在包中创建的符号,必须在包之前加载它。这可以通过依赖它或依赖它的其他包来实现。

此类符号的示例是添加到Meteor对象的方法,这就是您的情况。

api.use('some-package'); // some-package is the desired package or depends on it

为了获得由包导出的符号,您应该直接依赖它,或者依赖暗示该包的包(或者也显式地自行导出符号)。

api.use('some-package'); // some-package exports the symbol directly or by implying

如果您的包是唯一依赖于它的包(即,没有其他包强烈依赖它,并且用户没有将其添加为顶级依赖项)。

api.use(['some-package'], ['client', 'server'], {weak: true});

如果你需要在所有包都加载后做一些事情,你可以这样做Meteor.startup()

Meteor.startup(function() {
  //do stuff after all packages and code were loaded
});
于 2015-12-01T14:09:20.223 回答
0

您可以在用户集合上放置一些“重置逻辑”, Meteor.users.allow({ remove:function() { resetLogic(); });

请查看http://docs.meteor.com/#/full/allow以获取参考

于 2015-12-01T04:09:22.777 回答