是否可以挂钩meteor reset
?我希望在运行此命令时删除所有用户上传。
答案 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以添加您想要的功能。然而,更新将破坏钩子。