NodeJS: получение содержимого файла из службы REST и принудительная загрузка - PullRequest
0 голосов
/ 24 октября 2018

Среда: nodeJS, nginx

Описание проблемы: У меня есть внешняя служба REST, которая возвращает данные документа.Он работает правильно и возвращает данные следующим образом:

Рисунок: основной сервис REST генерирует данные документа

Моя цель - создать прокси-узел nodeJS для этого рабочего сервиса, чтобы пользователь могне могу напрямую подключиться к основному сервису.Я написал небольшую функцию для получения / загрузки запроса в моем приложении и необходимые параметры, чтобы я мог вызвать основную службу внутри приложения nodeJS и начать загрузку сгенерированного документа.

app.get('/download', function(req, res){
    var reqPostFix = '';
    if (req.query.seq)
    {
        reqPostFix = '/file/' + req.query.seq;
    }
    request(baseSevice2 + 'container/' + req.query.doc + '/download' + reqPostFix, function(error, response, body) {
        if (!error && response.statusCode == 200) {
                    res.setHeader('Content-Disposition', response.headers['content-disposition']);
                    res.setHeader('Content-Type', response.headers['content-type']);
                    res.write(response.body);
                    res.end();
        }
         else {
            res.send(error);
        }       
    })

});

В результате этого кода я получаю ответ, которыйнемного отличается от того же ответа, если я вызываю основную службу - если быть точным, есть некоторые пробелы, которые отчетливо видны в почтальоне:

Изображение: Разница между вызовом основной службы и вызовом одной и той же службы с помощью прокси-приложения nodeJS

В результате сгенерированный файл неверен, и в моем случае это текстовый документ, который открывается с поврежденным сообщением.Что я упустил из виду, что хочу получить абсолютно такой же ответ от прокси-вызова по сравнению с основным ответом службы REST?

...