原问题: resquest.js pipe 数据流下载文件时, 如何自动获取文件后缀名并保存? 在哪一步加入?
在.createWriteStream()
之前获取到请求文件的后缀,之后再pipe
到数据流中保存。
注意:url
中没有文件后缀名。
解决方案:
const fs = require('fs');
const request = require('request');
const url = "someurl"
const path = "somepath"
const filename = "somefilename"
let req = request.get(url).on("response", (response) => {
type = response.headers["content-type"];
type = type.substring(type.lastIndexOf("/") + 1);
req.pipe(fs.createWriteStream(`${path}\\${filename}\\.${type}`));
req.on("close", (err) => {
// do something
});
});