将string转换为缓冲节点

我正在使用函数调用返回缓冲区的toString库。

确切的代码是

return Buffer.concat(stdOut).toString('utf-8'); 

但是我不想要它的string版本。

我只是想要缓冲区

那么如何将string转换回缓冲区。

像是如果

 var bufStr = Buffer.concat(stdOut).toString('utf-8'); //convert bufStr back to only Buffer.concat(stdOut). 

这个怎么做?

我试过了

 var buf = Buffer.from(bufStr, 'utf-8'); 

但是它引发的utf-8不是函数。 当我做

 var buf = Buffer.from(bufStr); 

它引发TypeError:这不是一个types数组。

谢谢

你可以做:

 var buf = Buffer.from(bufStr, 'utf8'); 

但是这有点愚蠢,所以另一个build议是从被调用的函数中拷出最less量的代码,以允许你访问原始缓冲区。 根据该库的细节,这可能相当容易或相当困难。

您可以使用Buffer.from()将string转换为缓冲区。 更多的信息可以在这里find

 var buf = Buffer.from('some string', 'encoding'); 

例如

 var buf = Buffer.from(bStr, 'utf-8'); 

注意:只要转发John Zwinck的评论作为答案。

一个问题可能是您使用的是旧版本的Node(目前,我无法升级,代码库使用v4.3.1 )。 这里简单的解决scheme是,使用不赞成的方式:

 new Buffer(bufferStr) 

这对我有用,你可以像这样改变你的代码

 var responseData=x.toString(); 

 var responseData=x.toString("binary"); 

最后

 response.write(new Buffer(toTransmit, "binary"));