将nodejs的Buffer转换为浏览器的javascript

时间:2012-01-16 13:19:05

标签: javascript node.js buffer

我正在将我的代码从Node.js转换为浏览器的javascript,但我在node.js中遇到了Buffers的问题。如何在Javascript中使用它们?

以下是一个例子:

new Buffer("foo", encoding='utf8')
<Buffer 66 6f 6f>

我需要将javascript中的[66,6f,6f]转换为“foo”,反之亦然。我怎样才能做到这一点? 注意:这必须在没有Node.js的情况下完成。

3 个答案:

答案 0 :(得分:6)

在基于浏览器的JavaScript中没有对Buffer的直接支持,我也不知道有任何实现Buffer API的兼容性库。(/ p>

浏览器中的等效功能由TypedArrays提供。你可以在这里了解它们:

将基于节点缓冲区的实现移植到基于浏览器的JavaScript时,我发现这些答案很有帮助:

答案 1 :(得分:6)

使用https://github.com/substack/node-browserify,您可以使用:https://github.com/toots/buffer-browserify在浏览器中使用缓冲区。但是:在浏览器中这可能会非常慢:为了更快地访问,请使用https://github.com/chrisdickinson/bops

答案 2 :(得分:-2)

要转换回字符串,请使用缓冲区的toString方法和提供的编码。

http://nodejs.org/docs/latest/api/buffers.html#buffer.toString

var buffer = new Buffer("foo", "utf8");
var str = buffer.toString("utf8");
str === "foo";