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

时间:2014-05-20 08:44:56

标签: javascript mongodb meteor bson

据我了解,Node.js支持BSON(不确定是本机还是使用npm包)。然而Meteor发明了一种新的味道EJSON(增强型JSON),但我没有看到它带来了什么优势以及它如何比直接使用BSON更好。

有没有人知道EJSON优于BSON的优点是什么,或者当已经有JSON和BSON可用时,为什么需要EJSON?

1 个答案:

答案 0 :(得分:10)

好吧,不是BSON已经离开了,它仍然存在。 Meteor MongoDB驱动程序部分构建在native node driver for MongoDB之上,当然使用BSON实际与MongoDB通信,没有别的办法,因为这是MongoDB所说的语言,可以这么说。

AFAIK,EJSON的目的是在转换为只了解JavaScript的客户端时,通过它的二进制定义来保持BSON中固有的“类型保真度”,因此也就是JSON。所以主要是浏览器。

因此,Meteor的目标之一是使客户端和服务器端代码之间的差异变得有些透明,它需要一种机制来维护DatesObjectId等的“类型保真度”。与客户端和服务器之间传输数据。

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