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 に答える