HapiJS提供文件

时间:2016-04-29 07:26:18

标签: node.js hapijs

我想提供文件(使用NodeJS和HapiJS)而不保存到文件系统。

我有两个服务器。 我需要提供从server2到客户端的静态内容,通过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));

此时文件已保存,我可以回复。

我想直接回复而不保存到我的文件系统,是否可能?

1 个答案:

答案 0 :(得分: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');
      });