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
是一种方法。它是一个对象,是的。谢谢,我将在问题中对其进行编辑。