NodeJS从缓冲区读取ASCII

时间:2014-10-19 10:42:50

标签: node.js buffer

我的应用程序将接收二进制格式<type>:<location>\n<binary>的文件,因此图片可能看起来像image:~/documents/image.png\n<image>

要在节点中阅读此内容,我有以下代码。

var type = '';
var destination = '';
var i = -1;

while (data[++i] != ':')
    type += data[i];

while (data[++i] != '\n')
    destination += data[i];

data = data.slice(i);

然而,这会导致Node占用所有RAM和CPU,并最终崩溃。我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

解决!

var type = '';
var destination = '';
var char = '';
var i = 0;

while ((char = String.fromCharCode(data.readUInt8(i++))) != ':')
    type += char;

while ((char = String.fromCharCode(data.readUInt8(i++))) != '\n')
    destination += char;

data = data.slice(i);