Skip to content Skip to sidebar Skip to footer

Use Result Of Https Get Request [node.js]

I'm stuck with a small problem I think, but I can't find a way to solve it. I want to load a remote JSON in a variable, using Node.js HTTPS GET request. It's a success, but I can't

Solution 1:

You could write a promise-based wrapper for your function:

functiongetMyFile() {
  var https = require('https');

  returnnewPromise((resolve, reject) => {
      https.get('URL_I_am_targeting/file.json', (res) => {
        var { statusCode } = res;
        var contentType = res.headers['content-type'];

        let error;

        if (statusCode !== 200) {
          error = newError('Request Failed.\n' +
            `Status Code: ${statusCode}`);
        } elseif (!/^application\/json/.test(contentType)) {
          error = newError('Invalid content-type.\n' +
            `Expected application/json but received ${contentType}`);
        }

        if (error) {
          console.error(error.message);
          // consume response data to free up memory
          res.resume();
        }

        res.setEncoding('utf8');
        let rawData = '';

        res.on('data', (chunk) => {
          rawData += chunk;
        });

        res.on('end', () => {
          try {
            const parsedData = JSON.parse(rawData);
            resolve(parsedData);
          } catch (e) {
            reject(e.message);
          }
        });
      }).on('error', (e) => {
        reject(`Got error: ${e.message}`);
      });

    });
  }

So that, you can use the function like this:

getMyFile()
  .then(response => {
    // handle success response here
  })
  .catch(error => {
    // handle error here
  });

Post a Comment for "Use Result Of Https Get Request [node.js]"