簡體   English   中英

NodeJS:無法將流/緩沖區轉換為base64字符串

[英]NodeJS: Unable to convert stream/buffer to base64 string

我需要創建要發送給第三方API的base64字符串。 我有流和緩沖區。 表單流我能夠創建圖像,所以流不會被破壞。 這是兩個變量:

var newJpeg = new Buffer(newData, "binary");

var fs = require('fs');
let Duplex = require('stream').Duplex;

let _updatedFileStream = new Duplex();
_updatedFileStream.push(newJpeg);
_updatedFileStream.push(null); 

無論我如何嘗試,我都無法將它們轉換為base64字符串。

_updatedFileStream.toString('base64');
Buffer(newJpeg, 'base64');
Buffer(newData, 'base64');

以上都不是。 有時我會收到Uint8Array [arraySize]或亂碼。 我究竟做錯了什么?

使用承諾的示例(但可以很容易地適應其他方法):

return new Promise((resolve, reject) => {
    let buffers = [];
    let myStream = <...>;
    myStream.on('data', (chunk) => { buffers.push(chunk); });
    myStream.once('end', () => {
        let buffer = Buffer.concat(buffers);
        resolve(buffer.toString('base64'));
    });
    myStream.once('error', (err) => {
        reject(err);
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM