我希望向 Parse.com 添加一个保存后触发器,以便在更新某种类型的用户帐户时通知我。在这种情况下,如果 Parse.User 中的“user_ispro”列为 true,我希望在保存后收到电子邮件(此列为 null 到 true)。我添加了下面的代码,但每次更新我都会收到电子邮件,而不仅仅是我的查询。想法?
Parse.Cloud.afterSave(Parse.User, function(request) {
var Mandrill = require('mandrill');
query = new Parse.Query(Parse.User);
query.equalTo("user_ispro", true);
query.find({
success: function(results) {
Mandrill.initialize('xxxx');
Mandrill.sendEmail({
message: {
text: "Email Text",
subject: "Subject",
from_email: "test@test.com",
from_name: "Test",
to: [{
email: "test@test.com",
name: "Test"
}]
},
async: true
}, {
success: function(httpResponse) {
console.log(httpResponse);
response.success("Email sent!");
},
error: function(httpResponse) {
console.error(httpResponse);
response.error("Uh oh, something went wrong");
}
});
},
error: function() {
response.error("User is not Pro");
}
});
});
最佳答案
查询的成功回调总是被执行(即:当查询成功时),几乎在所有情况下都是如此。当没有结果时,您期望查询失败,这是一个错误的假设。
如果结果为空,您应该添加一个检查,并且只有在有实际结果时才触发电子邮件发送。仅当出现错误时才会触发错误回调,空结果不是错误(显然)。
关于javascript - Parse.com 云代码 - 保存后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26102196/