陷入流星重置

时间:2013-02-11 03:45:39

标签: meteor

是否可以挂钩meteor reset?我希望在运行此命令时删除所有用户上传。

1 个答案:

答案 0 :(得分:1)

请记住,meteor reset在已部署的应用程序中不可用,我认为不应该100%确定它应该是这样。

虽然你不能直接挂钩而不修改meteor.js,但重置功能非常简单,你可以用不同的方式模仿它:

方法1

所有流星重置都会删除yourproject/.meteor/local中您可以使用bash脚本执行此操作的所有文件,或者创建另一个执行相同操作的节点js文件:

流星重置功能的来源(如果您决定在节点中进行):

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

方法2

此方法适用于生产模式。看到流星重置只是清除数据库,你可以手动完成它(当流星也在运行!):

服务器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以添加您想要的功能。然而,更新将破坏钩子。