使用node express js下载文件

时间:2016-09-04 20:46:51

标签: javascript node.js file express download

我正在尝试使用快递js下载文件,但我遇到了一些麻烦 以下是功能:

var download = function(uri, filename, callback) {
  request
  .get(uri)
  .on('response', function (response) {
  var ext = response.headers['content-type'].split('/');
  filename += '.' + ext[1];
  })
  .pipe(fs.createWriteStream(filename));
};

问题是我不知道文件的扩展名,所以我需要在响应头中获取它,但ext[1]值不会使用文件扩展名增加我的文件名。我甚至无法通过引用设置变量来在函数外部进行。

1 个答案:

答案 0 :(得分:0)

  • 我认为你的管道在'filename'获取任何数据之前被解雇。
  • 你不应该用'/'
  • 分开

请改为尝试:

var mime = require('mime-types'); // After npm install mime-types

request
    .get(uri)
    .on('response', function (response) {

        var responseType = (response.headers['content-type'] || '').split(';')[0].trim();
        var ext = mime.extension(responseType);

        filename += '.' + ext;

        var fileStream = fs.createWriteStream(filename)
                    .on('finish', function() {
                        //Download complete
                    })

        this.pipe(fileStream);
     })

P.S。您正在使用'request'模块下载,而不是使用express。