提问者:小点点

node.js node-red-converto Base64字符串到uint8array


我正在使用Node Red实现web服务,并且绞尽脑汁将base64字符串转换为字节数组(uint8array)或将缓冲区转换为uint8array。

我的node-red流的一个“node”输出一个作为缓冲区或base64字符串的图像。 我需要将响应的映像传递到需要uint8array基映像的web服务中。

有很多使用atob和btoa的答案,但是node red不支持它。

这就是我想要的缓冲区格式:

我试过很多方法:

function toArrayBuffer(myBuf) {
   var myBuffer = new ArrayBuffer(myBuf.length);
   var res = new Uint8Array(myBuffer);
   for (var i = 0; i < myBuf.length; ++i) {
      res[i] = myBuf[i];
   }
   return myBuffer;
}

=====

尝试使用。。。

var buf = Buffer.from(b64string, 'base64')

上面的解决方案不会生成uint8array

你有什么想法吗?


共1个答案

匿名用户

base64节点(https://flows.nodered.org/node/node-red-node-base64)应该将base64转换为缓冲区,然后您可以将该缓冲区用作用于发送到Web服务的节点的输入。

NodeJS缓冲区是Uint8Array的一个子类,它们只是表示字节集合的方法。