Parse platform 如何在“beforeSave”云函数中取消设置嵌套属性?

Parse platform 如何在“beforeSave”云函数中取消设置嵌套属性?,parse-platform,parse-server,parse-javascript-sdk,Parse Platform,Parse Server,Parse Javascript Sdk,我扩展了一个Parse.Object。现在,我想在保存对象之前取消设置嵌套属性。此嵌套属性设置是一个对象 所以我的钩子看起来像这样: Parse.Cloud.beforeSave('MyObject', req => { if (req.object.get('settings').propertyToUnset) { req.object.unset('settings.propertyToUnset'); } }); 但是,这会产生错误error[ERR\u

我扩展了一个
Parse.Object
。现在,我想在保存对象之前取消设置嵌套属性。此嵌套属性
设置
是一个对象

所以我的钩子看起来像这样:

Parse.Cloud.beforeSave('MyObject', req => {
   if (req.object.get('settings').propertyToUnset) {
       req.object.unset('settings.propertyToUnset');
   }
});
但是,这会产生错误
error[ERR\u HTTP\u HEADERS\u SENT]:无法在发送到客户端后设置头


unset
如何处理嵌套属性?

您可以尝试以下方法:

Parse.Cloud.beforeSave('MyObject', req => {
   if (req.object.get('settings').propertyToUnset) {
       req.object.unset('settings.propertyToUnset');
   }
});
Parse.Cloud.beforeSave('MyObject',async req=>{
const settings=req.object.get('settings');
等待设置。fetch();
if(settings.get('propertyToUnset')){
settings.unset(“propertyToUnset”);
等待设置。保存();
}
});

解决方案是使用普通JavaScript命令
delete
删除嵌套对象
设置的属性:

Parse.Cloud.beforeSave('MyObject', req => {
    if (req.object.get('settings').propertyToUnset) {
        delete req.object.get('settings').propertyToUnset;
    }
});

这意味着默认情况下不会获取嵌套对象?它不起作用:“获取不是一个函数”。如果我使用
delete-req.object.get('settings').propertyToUnset
,它就会工作。所以在解析中没有办法用
unset
?我假设
settings
是一个
指针。它是物体吗?在这种情况下,
delete
是一种方法。它是一个对象,是的。谢谢,我将在问题中对其进行编辑。