Экспресс - Как обслуживать CSV с удаленного сервера? - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть простой нод / экспресс API с одним маршрутом. На этом маршруте я хочу сделать запрос API к сторонней службе, которая отправляет CSV. В свою очередь, я хочу отправить CSV в качестве ответа.

У меня есть это, но я чувствую, что может быть что-то фундаментальное, что мне не хватает:

//get csv from remote server
let csv = await axios.get('https://api.com/csv', {
    responseType: 'blob'
})
//serve that csv as a response
res.send(csv)

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Вы можете использовать pipe для httpStream. Если размер файла огромен, это будет очень быстро. Это использует встроенный http-модуль nodejs. Надеюсь, это поможет вам.

app.get('/path',(req,res)=>{
var options = {
    hostname: 'hostname',
    port: 80,
    path: '/path',
    method: 'GET',
    headers: {

    }
  };

  var req = http.request(options, (response) => {

    response.pipe(res).on('error',(error)=>{
        console.log('Error');
    });
  });

  req.on('error', (e) => {
    console.error(`problem with request: ${e.message}`);
  });
  req.end();
});
0 голосов
/ 07 ноября 2019

Вы должны использовать такие аксиосы.

    axios.get('https://api.com/csv', {
      responseType: 'blob'
     })
      .then(function (response) {
        // handle success
        res.send(response);
      })

для получения дополнительной информации см. https://www.npmjs.com/package/axios

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...