我想提供文件(使用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));
此时文件已保存,我可以回复。
我想直接回复而不保存到我的文件系统,是否可能?
答案 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');
});