我正在开发一个测试框架,我想在每次运行时重置所有集合。
我在使用 时遇到问题Meteor.users
,因为它在包环境中未定义。
是否有任何解决方法可以从包中清理 Meteor.users 集合?
我正在开发一个测试框架,我想在每次运行时重置所有集合。
我在使用 时遇到问题Meteor.users
,因为它在包环境中未定义。
是否有任何解决方法可以从包中清理 Meteor.users 集合?
当涉及到包中的符号可用性时,包加载顺序和导出变量很重要。
为了获得在包中创建的符号,必须在包之前加载它。这可以通过依赖它或依赖它的其他包来实现。
此类符号的示例是添加到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
});
您可以在用户集合上放置一些“重置逻辑”,
Meteor.users.allow({
remove:function() {
resetLogic(); });