如何使用请求nodejs模块创建变量文件名?

时间:2016-06-22 15:59:56

标签: node.js request pipe response filenames

请求节点模块:https://github.com/request/request有一个示例,它只获取响应,然后将其传送到可写文件流中。如果我有一个可变文件名怎么办?例如,如果链接可能是png或jpg?我收到回复后如何管道?

request.get('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))

例如,

request.get(fileURL)
    .on('response', res => {
      let resType = res.headers['content-type'];
      //get the file name based on the content-type
    })
    .pipe(fs.createWriteStream(fileName); //should use the fileName created in the on('response') callback

2 个答案:

答案 0 :(得分:3)

你真的很亲密。你只需要在回调中输入管道:

let req = request.get(fileURL)
  .on('response', res => {
      let resType = res.headers['content-type'];
      let fileName = figureOutExtension(resType); //get the file name based on the content-type
      req.pipe(fs.createWriteStream(fileName));
    })

答案 1 :(得分:0)

你应该在回调中创建文件,因为回调是在这个程序的末尾运行的,文件名是基于resType的。