我在所有其他类(我创建的类)中使用了类似的代码,之前是删除& afterDelete可以正常使用它们。
但是对于类User,这两个函数似乎不起作用。删除User类中的对象有什么特别之处吗?还有另一种方法吗?
这是我的代码:
main.js
Parse.Cloud.define("delete_user", delete_object.deleteUser);
Parse.Cloud.beforeDelete("User", triggers.userBeforeDelete);
Parse.Cloud.afterDelete("User", triggers.userAfterDelete);
delete.js
function deleteObject(className, objectId) {
Parse.Cloud.useMasterKey();
var query = new Parse.Query(className);
var promise = new Parse.Promise();
query.get(objectId ,{
success: function(result){
var object = result;
object.destroy({
success: function(myObject) {
promise.resolve(myObject);
// The object was deleted from the Parse Cloud.
},
error: function(myObject, error) {
console.log('Error couldnt delete the object ' + error.message);
promise.reject(error);
}
});
},
error: function(newObject, error){
console.log("Error couldnt get the object: " + error.code + " " + error.message);
promise.reject(error);
}
});
return promise;
}
function deleteUser(request, response) {
Parse.Cloud.useMasterKey();
console.log('Entered deleteUser');
var objectId = request.params.objectId;
var returnValue = deleteObject('User', objectId).then(function() {
if (returnValue) {
console.log('userDelete completed');
response.success(true);
} else {
response.error(returnValue);
}
},
function (error) {
console.error('Request failed with response code ' + error.status);
response.error(false);
});
}
triggers.js
function userBeforeDelete(request) {
console.log('Entered userBeforeDelete');
}
function userAfterDelete(request) {
console.log('Entered userAfterDelete');
}
通常应该打印'已输入deleteUser'然后'输入userBeforeDelete'并在'userDelete completed'后打印
但它正在跳过“输入的用户删除删除”而只是打印出“已输入的删除用户”和'userDelete completed',它成功删除了用户。
我对其他类使用相同的代码,例如评论,卡片,内容,它们都可以正常工作。 我希望能够在删除之前和删除用户之后做一些事情。
答案 0 :(得分:1)
而不是"用户" (对于一个名为User的程序员定义的类,你可以这样做),试试Parse.User
,就像......一样。
Parse.Cloud.beforeDelete(Parse.User, function(request, response) {