実行ごとにすべてのコレクションをリセットするテストフレームワードを開発しています。
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(); });
参照についてはhttp://docs.meteor.com/#/full/allowを確認してください