node.js node-red-将Base64字符串转换为uint8array

时间:2020-07-24 11:30:13

标签: node.js buffer node-red uint8array tobase64string

我正在使用Node Red来实现Web服务,并且竭尽全力将base64字符串转换为字节数组(uint8array)或将缓冲区转换为uint8array。

我的节点红色流的一个“节点”输出图像作为缓冲区或base64字符串。 我需要将响应的图像传递到需要uint8array基本图像的Web服务中。

使用atob和btoa有很多答案,但是红色节点不支持。

下面是我需要转换的输出缓冲区格式 enter image description here

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

enter image description here

这是我要调用的Web服务的文档:

https://demous-cdb.thereforeonline.com/theservice/v0001/restun/help/operations/CreateDocument

enter image description here

enter image description here

我尝试了很多方法:

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 个答案:

答案 0 :(得分:0)

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

NodeJS Buffer是Uint8Array的子​​类,它们只是表示字节集合的方式。