2016-04-29 2 views
0

Я хочу служить файлом (с NodeJS и HapiJS) без сохранения в файловую систему.HapiJS обслуживающий файл

У меня есть два сервера. Мне нужно обслуживать статический контент от сервера2 к клиенту, проходящему через server1. Поэтому, когда клиент пойти в мой маршрут, я делаю вызов в server1 к server2 для сохранения файла в server1 и ответ с ним

я сделать запрос к серверу, как это:

var options = { 
    uri: 'http://192.168.11.101:8080' + req_path, 
    headers: { 
     Cookie: jCookie 
    } 
}; 
var full_name = '/tmp/test.' + format; 

var stream = httpRequest(options).pipe(fs.createWriteStream(full_name)); 

На данный момент файл был сохранен, и я могу ответить с ним.

Я хочу ответить напрямую без сохранения в мою файловую систему, возможно ли это?

+0

Что вы имеете в виду, если не сохранить в файловой системе? Откуда идет файл? К кому вы его отправляете? Ваш вопрос не очень ясен. –

+0

Теперь это более ясно @MattHarrison – Davide

+0

Итак, вы хотите использовать его в качестве прокси-сервера? – Clarkie

ответ

0

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

let stream = fs.createReadStream(httpRequest(options)); 
     stream.on('data', function(data) 
     { 
     console.log(data); 
     console.log('loaded part of the file'); 
     //reply(null,data); 
     reply(data).header('Content-Type', 'file content type').header('Content-Disposition', 'attachment; filename=ex.txt'); 
     }); 
     stream.on('end', function() 
     { 
     console.log('file send sucessfully'); 
     });