The response has the image data but I am unable to extract it from the response.
CLIENT CODE-
download() {
    this._http.get('http://localhost:9000/download/' + this._fileid)
    .subscribe(
    data => {
        this.image = data;
    },
    err => console.log('Error is..:' + err)
    );
}
SERVER CODE-
app.get('/download/:fileid', function(req, res) {
    var id = req.params.fileid;
    res.set('Content-Type', 'image/jpeg');
    gfs.createReadStream({_id: id}).pipe(res);
});
[EDIT]- I have adapted my code to use CustomXhr but however I get an empty blob with no data.
CUSTOM XHR CODE-
@Injectable()
export class CustomBrowserXhr extends BrowserXhr {
  build(): any {
    let xhr = super.build();
    xhr.responseType = "blob";
    return <any>(xhr);
  }
}
BOOTSTRAP CODE-
export function main(initialHmrState?: any): Promise<any> {
  return bootstrap(App, [
    ...ENV_PROVIDERS,
    ...PROVIDERS,
    ...DIRECTIVES,
    ...PIPES,
    ...APP_PROVIDERS,
     provide(BrowserXhr, { useClass: CustomBrowserXhr })
  ])
  .catch(err => console.error(err));
}
HTTP REQUEST-
download() {
  this._http.get('http://localhost:9000/download/' + this._fileid)
    .toPromise()
    .then(res => {
      if (res.headers.get("Content-Type").startsWith("image/")) {
          var blob = new Blob([new Uint8Array(res._body)], {
              type: res.headers.get("Content-Type")
          });
          var urlCreator = window.URL;
          var url = urlCreator.createObjectURL(blob);
          console.log(url);
          this.image = url;
      }
    })
}
