为了进行有效的服务器端解析,我正在寻找一个直接用于浏览器javascript环境的BSON解决方案。我们的想法是通过二进制websockets利用整个ASCII空间。有什么建议吗?
(欢迎任何nodejs建议)
答案 0 :(得分:11)
对于它的价值,似乎MongoDB团队现在有一个支持的Javascript BSON项目:
https://github.com/mongodb/js-bson
我不是图书馆的专家,但该项目声称可以在Node和浏览器中工作。以下是其网站的修改样本:
<head>
<!-- Originally https://raw.github.com/mongodb/js-bson/master/browser_build/bson.js -->
<!-- But downloaded and hosted locally -->
<script src="./bson.js"></script>
</head>
<body onload="start();">
<script>
function start() {
var BSON = bson().BSON;
var Long = bson().Long;
var doc = {
oid: bson().ObjectID(),
long: Long.fromNumber(100),
date: new Date(),
string: "js-bson sample",
obj: {
string: "Object within an object"
}
}
console.log("doc %o", doc);
// Serialize a document
var data = BSON.serialize(doc, false, true, false);
console.log("data %o", data);
// De serialize it again
var doc_2 = BSON.deserialize(data);
console.log("doc_2 %o", doc_2);
}
</script>
</body>
以下是Chrome中的结果:
答案 1 :(得分:6)
这可能是不完整的,但项目的目标与你想要的一致:https://github.com/muhmi/javascript-bson它看起来不像直接编码到通过WebSocket发送最有用的类型数组。
答案 2 :(得分:0)
2019年,现代浏览器已经在其中嵌入了以下功能:
btoa("string to be coded on base64 format")
atob("base64 string to be uncoded")
您将在这里看到:https://caniuse.com/#search=btoa 列出的所有浏览器都具有此功能。