【问题标题】:HapiJS serving fileHapiJS 服务文件
【发布时间】:2017-09-22 18:30:31
【问题描述】:

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

我有两台服务器。 我需要通过 server1 将静态内容从 server2 提供给客户端。 因此,当客户端转到我的路线时,我在 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));

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

我想直接回复而不保存到我的文件系统,可以吗?

【问题讨论】:

  • 不保存到文件系统是什么意思?文件来自哪里?你要把它寄给谁?你的问题不是很清楚。
  • 现在更清楚了@MattHarrison
  • 所以你想用它做代理?
  • 大致... 我想回复 server2 的文件而不保存在 server1 上。我认为 HapiJS 和 NodeJS 不可能:) @Clarkie
  • 您可以选择在任一方向传递您想要(或不)的任何标题。

标签: node.js hapijs


【解决方案1】:

您可以使用以下代码作为流发送而不是保存文件。希望这对您有所帮助。

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');
      });

【讨论】:

    猜你喜欢
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多