Javascript 提供tar.gz文件并在nodejs上下载

Javascript 提供tar.gz文件并在nodejs上下载,javascript,node.js,fileserver,Javascript,Node.js,Fileserver,我在nodejs服务器上有tar.gz文件。我希望它可以从另一个nodejs应用程序下载。我可以用txt,jpeg等来做。。。但是tar.gz没有成功。下载tar.gz文件时,客户端上的文件似乎是空的 这是我使用的简化基本服务器 var http = require('http'); http.createServer(function(request, response){ fs.readFile(__dirname + "/update/test.tar.gz", (err, data)

我在nodejs服务器上有tar.gz文件。我希望它可以从另一个nodejs应用程序下载。我可以用txt,jpeg等来做。。。但是tar.gz没有成功。下载tar.gz文件时,客户端上的文件似乎是空的

这是我使用的简化基本服务器

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);
     }
});
这是尝试下载的客户端

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 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();

为什么不使用application/gzip内容类型?我相信你的问题来自那里。

这并不能回答这个问题。一旦你有足够的钱,你将能够;相反