1

にフックすることは可能meteor resetですか? このコマンドの実行時に、すべてのユーザー アップロードを削除したいと考えています。

4

1 に答える 1

1

meteor resetデプロイされたアプリケーションでは を使用できないことに注意してください。これについて 100% 確信があるとは限りません。

meteor.js を変更せずに直接フックすることはできませんが、リセット機能は非常に単純であり、別の方法で模倣できます。

方法 1

meteor のリセットでは、bash スクリプトを使用してすべてのファイルを削除するyourproject/.meteor/localか、同じことを行う別のノード js ファイルを作成するだけです。

流星リセット機能のソース (ノードで作成する場合):

var local_dir = path.join(app_dir, '.meteor', 'local');
files.rm_recursive(local_dir);

方法 2

この方法は、プロダクション モードで機能します。meteor のリセットはデータベースをクリアするだけなので、手動で行うこともできます (meteor の実行中も!):

サーバーjs

Meteor.methods({
    resetme: function(password) {
        var require = meteor_bootstrap.require;
        var path = require('path');

        if(password=="1234") {
            Collection1.remove({});
            Collection2.remove({});
            Collection3.remove({});

            var local_dir = path.join(app_dir, 'yourfiledirectory');

            //recursively delete your files in local_dir
            return true;
         }
         else
         {
             return false;
         }
    }
});

クライアント(必要に応じて)

Meteor.call("resetme", "1234", function(err,result) { if(err) { console.log("Error resetting"); } else { if(result) {console.log("Reset complete")}});

方法 3 (より多くのフック)

アプリケーションをバンドルし、meteor.js を編集して必要な機能を追加できます。ただし、更新するとフックが破棄されます。

于 2013-02-11T11:18:46.487 に答える