Как преобразовать результаты синтаксического анализа FetchAPI в Base64 - PullRequest
0 голосов
/ 30 сентября 2018

Файл module.exports, который извлекает изображение из конечной точки API.Затем результат API анализируется в большой двоичный объект.После анализа объект Blob выглядит следующим образом:

Blob {
  [Symbol(type)]: 'image/jpeg',
  [Symbol(buffer)]:
   <Buffer ff d8 ff db 00 43 00 08 06 06 07 06 05 08 07 07 07 09 09 08 0a 0c 14
0d 0c 0b 0b 0c 19 12 13 0f 14 1d 1a 1f 1e 1d 1a 1c 1c 20 24 2e 27 20 22 2c 23 1c
 ... > }

И вот код:

// Pre Configuration
const fetch = require('node-fetch')

module.exports = async (req, res, photoKey) => {
    let photoUrl = null
    const apiURL = "https://media.heartenly.com/stg/CACHE/sc_thumb"
    const requestURL = `${apiURL}/${photoKey}`
    const response = await fetch(requestURL)
    const data = await response.blob()
    console.log(data)
}      

Теперь я хочу вернуть URL-адрес base64 возвращенного большого двоичного объекта, любойидеи?

1 Ответ

0 голосов
/ 30 сентября 2018

Глядя на извлечение узла, кажется, что невозможно получить доступ к буферу BLOB-объектов, поэтому лучше всего сделать следующее:

  1. использовать response.buffer вместо response.blob
  2. используйте toString ('base64'), чтобы получить данные в base64

, другими словами:

const fetch = require('node-fetch');

module.exports = async (req, res, photoKey) => {
    let photoUrl = null;
    const apiURL = "https://media.heartenly.com/stg/CACHE/sc_thumb";
    const requestURL = `${apiURL}/${photoKey}`;
    const response = await fetch(requestURL);
    const data = await response.buffer()
    const b64 = data.toString('base64');
    console.log(b64);
}; 
...