Quantcast
Channel: How can I access the response headers of a request that is piped to a feedparser - Stack Overflow
Viewing all articles
Browse latest Browse all 2

Answer by Badri for How can I access the response headers of a request that is piped to a feedparser

$
0
0

Pass the metaData on end like

'use strict';const FeedParserStream = require('feedparser');module.exports = (feedparserOptions, metaData) => {  // console.log(metaData, 'herre');  const parsedItems = [];  const feedparser = new FeedParserStream(feedparserOptions);  // console.log(feedparser);  feedparser.on('readable', () => {    // console.log(resp);    let item;    while (item = feedparser.read()) {      parsedItems.push(item);    }    return parsedItems;  }).on('end', function next() {    this.emit('response', { parsedItems, metaData });  });  return feedparser;};

and your feed-parser promised as

'use strict';const request = require('request');const feedParser = require('./feedParser');const parse = (requestOptions, feedparserOptions) => {  const metaData = {};  return new Promise((resolve, reject) => {    request.get(requestOptions).on('error', reject).on('response', async resp => {      if (resp.statusCode === 304) {        reject('Source not modified');      } else if (resp.statusCode === 200) {        metaData.etagin = await resp.headers.etag;        metaData.LastModifiedin = await resp.headers['last-modified'];        metaData.LastModifiedLocal = await resp.headers['last-modified'];        // console.log(metaData);      }    }).pipe(feedParser(feedparserOptions, metaData).on('error', reject).on('response', resolve));  });};module.exports = {  parse};

Viewing all articles
Browse latest Browse all 2

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>