我正在尝试在我的 Parse 应用程序上运行迁移,目前我正在尝试运行一个小型迁移脚本(这应该需要不到一秒钟的时间)。然而,当我尝试运行它(并尝试解决错误)时,我的应用程序在几分钟内变得不可用。当我进入开发者控制台时,我得到的是:
对我的应用程序的所有请求都会失败几分钟,我的所有应用程序页面都会返回 404,并且终端上的所有命令都会延迟几秒钟,甚至大约一分钟。
这是我尝试执行的脚本(使用 cURL 的主 key )(很抱歉代码中的显式语言,这只是我自己的快速修复):
Parse.Cloud.define("migratePosts", function(request, response){
var query = new Parse.Query("Posts");
query.find({success: function(results){
for (var i = results.length - 1; i >= results.length - 10; i--) {
var post = results[i];
if(!post.get("User")){
var userQuery = new Parse.Query("_User");
userQuery.equalTo("username", post.get("username"));
userQuery.find({
success:function(users){
var usr = users[0];
post.set("User", usr);
post.save(null, {
success: function(e){
console.log("saved " + post.get("User"));
},
error: function(o,e){
console.error("error " + e.code + ": " + e.message);
}
});
},
error:function(o,e){
console.log("fuck! " + e.code);
}
});
}
}
}, error:function(e){
console.log("more fuck! " + e.message);
}
});
});
在 app.js
中初始化时,我调用使用主 key (以运行迁移):
Parse.initialize("my app key", "my js key");
Parse.Cloud.useMasterKey();
当我注释掉 useMasterKey
时,我的应用程序再次开始工作,但我仍然(并且不希望)无法运行迁移。会发生什么?我检查了 API 速率限制,没有超出它。如何运行需要主权限的迁移?
最佳答案
正如 userMasterKey()
函数上的 Parse.Cloud
前缀所建议的,它仅适用于 Parse Cloud 代码。
您基本上可以使用它来让云函数在需要时不受限制地运行,希望在确定您信任调用者或者代码不会破坏事物之后。
在您的情况下,您可以将其添加到您创建的云功能中,尽管听起来您确实应该为此创建一个云作业,因为如果需要执行大量工作,它可能会超过 15 秒的限制。
关于node.js - Parse 开始拒绝开发者控制台中带有空 "alert"的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25109967/