2016-05-15 14 views
1

nodejsサーバーにtar.gzファイルがあります。私は別のnodejsアプリからダウンロードできるようにしたい。私はtxt、jpegなどでそれをすることができます...しかし、tar.gzで成功しません。ダウンロードすると、tar.gzファイルがクライアント上で空に見えます。tar.gzファイルを提供してnodejsでダウンロードしてください

これは私がこれはそれが正常にファイルを保存するようですが、私はそれを抽出カント

var postData = {}; 

var options = { 
    protocol : "http:", 
    host: "localhost", 
    port: 3010, 
    path: '/GetFile', 
    method: 'POST', 
    headers: { 
     'Content-Type': 'application/octet-stream', 
     'Content-Length': Buffer.byteLength(postData) 
    } 
}; 

var req = http.request(options, function(res) { 

    var body = ''; 

    res.on('data', function (chunk) { 

     body += chunk; 
    }); 

    res.on('end', function(){ 

     fs.writeFile("./test4.tar.gz", body, function(err) { 

     }); 


    }); 
}); 

req.write(postData); 
req.end(); 

をダウンロードしようとしたクライアントである。

var http = require('http'); 

http.createServer(function(request, response){ 

fs.readFile(__dirname + "/update/test.tar.gz", (err, data) => { 
    if (err) { 

    } else { 

     response.setHeader('Content-Type', 'application/x-gzip'); 
     response.end(data); 
    } 
}); 

を使用簡略化の基本的なサーバーです

答えて

0

以下のようにストリームを作成して解決しました。

var req = http.request(options, function(res) { 

    var body = ''; 
    var file = fs.createWriteStream('./test4.tar.gz'); 

    res.on('data', function(chunk){ 
     file.write(chunk); 
     }).on('end', function(){ 
      file.end(); 
     }); 
    }); 

req.write(postData); 
req.end(); 
関連する問題