Javascript 为什么Meteor直接使用EJSON而不是BSON?

Javascript 为什么Meteor直接使用EJSON而不是BSON?,javascript,mongodb,meteor,bson,Javascript,Mongodb,Meteor,Bson,据我所知,Node.js支持BSON(不确定是本机还是npm包)。然而,Meteor发明了一种新风格的EJSON(增强的JSON),但我看不出它带来了什么好处,以及它如何比直接使用BSON更好 有人知道EJSON相对于BSON的优势是什么,或者在已经有JSON和BSON可用的情况下为什么需要EJSON的原因是什么吗?好吧,BSON并不是已经消失了,它仍然存在。Meteor MongoDB驱动程序部分构建在之上,当然,它使用BSON与MongoDB进行实际对话,也就是说,这是MongoDB所说的语

据我所知,Node.js支持BSON(不确定是本机还是npm包)。然而,Meteor发明了一种新风格的EJSON(增强的JSON),但我看不出它带来了什么好处,以及它如何比直接使用BSON更好


有人知道EJSON相对于BSON的优势是什么,或者在已经有JSON和BSON可用的情况下为什么需要EJSON的原因是什么吗?

好吧,BSON并不是已经消失了,它仍然存在。Meteor MongoDB驱动程序部分构建在之上,当然,它使用BSON与MongoDB进行实际对话,也就是说,这是MongoDB所说的语言,因此没有其他方法

好吧,当翻译到只懂JavaScript的客户机时,其要点是保持BSON的二进制定义所固有的相同类型的“类型保真度”,因此也就是JSON。所以主要是浏览器

因此,Meteor的部分目标是使客户端和服务器端代码之间的差异变得透明,它需要一种机制来保持这种“类型保真度”,即在客户端和服务器之间传输数据时,
Dates
ObjectId


因此EJSON和JSON的区别在于,生成的JSON包含标识这些“类型”的特殊键,因此可以以这种方式正确处理它们,特别是在与服务器进程对话时。

因此我们需要EJSON的原因是浏览器只讲JSON,但不理解BSON?@Stephan基本上是的。BSON是JSON的二进制表示,浏览器使用JavaScript(一致同意),因此当我谈论“类型保真度”时,这里的概念类似于:
{“\u id”:{“$oid”:“537aa577e90c3db84958aa8b”}
然后有一些东西可以确定它原来的类型。例如,Java和C有不同的解释。JavaScript(不是严格类型化的)有不同的解释。所以你“哄骗”它。或者给一些东西传递给了解更多信息的服务器。明白了吗?谢谢,现在明白了。当你试图用一种简单明了的方式来理解这一切时,它会变得有点复杂,但你的回答肯定会让人大开眼界:——)出于好奇,你确定
E
in
EJSON
增强的
的简称吗?不,不确定。可能它代表扩展JSON而不是增强JSON,但官方文档从未解析首字母缩写。。。由于我仍然缺少一些关于
E
确切含义的权威性陈述,我现在就不提这个问题了。我也找不到答案,所以我希望你能帮我解决这个问题。好吧,一年的等待浪费了:'(但是谢谢!