Узел JS обслуживает тело файла с сервера и загружает в браузер. - PullRequest
0 голосов
/ 08 июня 2018

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

downloadFile(req , res , next) {
    let options = {
         url: 'url to my file repo',
    };

    request(options, function (err, resp, body) {
       if (err) {
           res.status(500).send("");
           return
       }

       for (const header in resp.headers) {
           if (resp.headers.hasOwnProperty(header)) {
               res.setHeader(header, resp.headers[header]);
           }
       }
       resp.pipe(res);
    })
}

Запрос работает нормально, и когда я захожу на свой сервер из браузера, он начинает скачивать файл.Кажется, все работает нормально, кроме одной вещи, файл не может быть открыт. Этот формат файла не может быть открыт , говорит мне проигрыватель изображений (если файл, например, image).Где проблема, это способ, которым я обслуживаю файл с сервера?Заранее спасибо.Я потерял много времени и не могу найти решение.

1 Ответ

0 голосов
/ 08 июня 2018

Потому что вы, вероятно, хотите отправить тело запроса (например, данные вашего изображения).Поэтому вместо resp.pipe (res):

res.send(body)

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

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