यह module.exports फ़ाइल है जो एक एपीआई एंडपॉइंट से एक छवि प्राप्त करती है। एपीआई परिणाम तब एक ब्लॉब में पार्स किया जाता है। ब्लॉब ऑब्जेक्ट को पार्स करने के बाद ऐसा दिखता है:

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)
}      

अब मैं क्या करना चाहता हूं, लौटाए गए ब्लॉब के बेस 64 यूआरएल प्रारूप को वापस करना है, कोई विचार?

1
Nadir Abbas 30 सितंबर 2018, 13:19

1 उत्तर

सबसे बढ़िया उत्तर

नोड-फ़ेच को देखते हुए, ब्लॉब बफर पर जाना असंभव लगता है, इसलिए, सबसे अच्छा दांव निम्नलिखित करना है

  1. response.blob के बजाय response.buffer का उपयोग करें
  2. बेस 64 में डेटा प्राप्त करने के लिए toString ('बेस 64') का उपयोग करें

दूसरे शब्दों में:

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);
}; 
7
Jaromanda X 30 सितंबर 2018, 13:45