据我了解,Node.js支持BSON(不确定是本机还是使用npm包)。然而Meteor发明了一种新的味道EJSON(增强型JSON),但我没有看到它带来了什么优势以及它如何比直接使用BSON更好。
有没有人知道EJSON优于BSON的优点是什么,或者当已经有JSON和BSON可用时,为什么需要EJSON?
答案 0 :(得分:10)
好吧,不是BSON已经离开了,它仍然存在。 Meteor MongoDB驱动程序部分构建在native node driver for MongoDB之上,当然使用BSON实际与MongoDB通信,没有别的办法,因为这是MongoDB所说的语言,可以这么说。
AFAIK,EJSON的目的是在转换为只了解JavaScript的客户端时,通过它的二进制定义来保持BSON中固有的“类型保真度”,因此也就是JSON。所以主要是浏览器。
因此,Meteor的目标之一是使客户端和服务器端代码之间的差异变得有些透明,它需要一种机制来维护Dates
,ObjectId
等的“类型保真度”。与客户端和服务器之间传输数据。
因此,EJSON和JSON的区别在于,生成的JSON包含识别这些“类型”的特殊键,因此可以通过这种方式正确处理它们,尤其是在与服务器进程通信时。