Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以/应该使用哪些变量类型作为meteor.js会话变量?_Meteor_Session Variables - Fatal编程技术网

我可以/应该使用哪些变量类型作为meteor.js会话变量?

我可以/应该使用哪些变量类型作为meteor.js会话变量?,meteor,session-variables,Meteor,Session Variables,我一直在做Session.set('currentlyActiveDocument',mydocument.\u id),但这意味着我经常做MyCollection.findOne(Session.get('currentlyActiveDocument'))。我想知道只做Session.set('currentlyActiveDocument',mydocument)并保存那些额外的数据库查找是否可以。也就是说,将对象本身(在本例中为文档)用作会话变量,而不是其ID。我不在乎在更改mydocu

我一直在做
Session.set('currentlyActiveDocument',mydocument.\u id)
,但这意味着我经常做
MyCollection.findOne(Session.get('currentlyActiveDocument'))
。我想知道只做
Session.set('currentlyActiveDocument',mydocument)
并保存那些额外的数据库查找是否可以。也就是说,将对象本身(在本例中为文档)用作会话变量,而不是其ID。我不在乎在更改
mydocument
的属性时是否重新运行反应相关函数


事实上,我最近尝试了这个方法,但遇到了一个令人惊讶的问题:当我执行Session.get(myobject)时,对象的一个方法(
mydocument
,在这种情况下它不是文档,只是一个JS对象)没有出现在另一端
foo.myMethod()
返回未定义。

您可以使用EJSON可以编码的任何类型的对象。要查看有关此的更多详细信息,请参阅

您还可以为自定义类型添加自己的EJSON扩展

JS对象没有(完全)存储在会话哈希中的原因是它包含一个函数,这些函数被EJSON忽略