我对所有其他类(我创建的类)使用类似的代码,beforeDelete 和 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);
删除.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);
});
}
触发器.js
function userBeforeDelete(request) {
console.log('Entered userBeforeDelete');
}
function userAfterDelete(request) {
console.log('Entered userAfterDelete');
}
通常应该打印“输入的deleteUser”,然后打印“输入的userBeforeDelete”和“userDelete完成”之后
但它跳过“输入的 userBeforeDelete”并仅打印出“输入的删除用户”和“用户删除已完成”,并成功删除用户。
我对其他类(例如评论、卡片、内容)使用了相同的代码,它们都工作正常。 我希望能够在删除用户之前和删除用户之后执行一些操作。
最佳答案
尝试使用 Parse.User
,而不是“User”(对名为 User 的程序员定义的类执行此操作的方式),如下所示......
Parse.Cloud.beforeDelete(Parse.User, function(request, response) {
关于javascript - 为用户解析 beforeDelete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28843707/