我正在使用Node Red来实现Web服务,并且竭尽全力将base64字符串转换为字节数组(uint8array)或将缓冲区转换为uint8array。
我的节点红色流的一个“节点”输出图像作为缓冲区或base64字符串。 我需要将响应的图像传递到需要uint8array基本图像的Web服务中。
使用atob和btoa有很多答案,但是红色节点不支持。
这是我想要的缓冲区格式:
这是我要调用的Web服务的文档:
https://demous-cdb.thereforeonline.com/theservice/v0001/restun/help/operations/CreateDocument
我尝试了很多方法:
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
你有什么主意吗?
答案 0 :(得分:0)
base64节点(https://flows.nodered.org/node/node-red-node-base64)应该将base64转换为缓冲区,然后您可以将其用作要发送到Web服务的节点的输入。
NodeJS Buffer是Uint8Array的子类,它们只是表示字节集合的方式。