Meteor.call删除客户端和服务器之间所有未定义的属性
我有以下电话: Meteor.call('updateDoc',id,obj)代码> updateDoc定义为:Meteor.call删除客户端和服务器之间所有未定义的属性,meteor,call,Meteor,Call,我有以下电话: Meteor.call('updateDoc',id,obj) updateDoc定义为: Meteor.methods({ updateDoc(id, doc) { MyCollection.update(id, {$set: doc}); } }); 用obj being来称呼它 { param1: undefined, param2: 'defined!' } 收到的文件中的结果为 { param2: 'defin
Meteor.methods({
updateDoc(id, doc) {
MyCollection.update(id, {$set: doc});
}
});
用obj being来称呼它
{
param1: undefined,
param2: 'defined!'
}
收到的文件中的结果为
{
param2: 'defined!'
}
这意味着在调用和方法触发器之间的某个地方,Meteor“清除”了未定义的属性
我怀疑他们正在使用JSON.stringify,这就是为什么undefined被删除的原因
除了使用null而不是undefined(这很有效)之外,还有什么方法可以强制流星通过undefined
作为补充说明,在客户端更新集合也会“丢失”未定义的属性,即在客户端执行此更新实际上只会更新param2,而忽略param1,因此如果param1具有以前的值,它将保持不变(而不是像Mongo 2.4以后那样被取消设置)尝试更改
MyCollection.update(id,{$set:doc})代码>像这样
MyCollection.update(id, {
$set: {docYouWantToChange: doc}
});
尝试更改MyCollection.update(id,{$set:doc})代码>像这样
MyCollection.update(id, {
$set: {docYouWantToChange: doc}
});
如果您不想使用null,可以使用空字符串,而不是未定义“”您可以发布您的插入方法,让我们在DB中查看文档结构吗?编辑您的代码将比未定义的代码更容易,如果您不想使用null,您可以使用空字符串“”您可以发布您的插入方法,让我们在DB中查看文档结构吗?编辑您的代码会更容易,但我不确定我是否理解进入DocYouwantChange的内容不确定我是否理解进入DocYouwantChange的内容