Javascript Node.js和Request.js:查找要下载的文件扩展名?

Javascript Node.js和Request.js:查找要下载的文件扩展名?,javascript,node.js,requestjs,Javascript,Node.js,Requestjs,我正在尝试使用下载几个文件,但我不知道如何找到它们的扩展名。其中一些是图像,一些是声音,一些是视频,但它们都来自一个URL,在结尾没有扩展名 const request = require("request"); request.get({ url: "http://example.com/unknownextension", }) .on("error", function(error) { console.log(error); }) .pipe(fs.createWrit

我正在尝试使用下载几个文件,但我不知道如何找到它们的扩展名。其中一些是图像,一些是声音,一些是视频,但它们都来自一个URL,在结尾没有扩展名

const request = require("request");

request.get({
    url: "http://example.com/unknownextension",
})
.on("error", function(error) {
    console.log(error);
})
.pipe(fs.createWriteStream("files/what.extension"));
当你访问这个网站时,它下载得很好。想想谷歌硬盘链接之类的东西


除非这些文件具有有效的扩展名,否则我无法打开任何文件,因此我非常感谢您的帮助。

网站的响应应通过标题发送文件类型,很可能是
内容配置

content-type


const request = require("request");
request.get({
    url: "http://example.com/unknownextension",
})
.on("error", function(error) {
    console.log(error);
})
.on('response',  function (res) {
  res.pipe(fs.createWriteStream("files/what." + res.headers['content-type'].split('/')[1])); 
 // it could also be content-dispostion or any other header, please check the headers first

});

文件类型npm将解决您的问题

npm安装文件类型

const fileType = require('file-type');
http.get(url, res => {
res.once('data', chunk => {
    res.destroy();
    console.log(fileType(chunk));
    //=> {ext: 'One of the supported file types', mime: 'The MIME type'}
});});

谢谢,它在内容配置中,但我使用了一种奇怪的方法来获取文件扩展名:
result.headers[“content-disposition”].split(“.”.pop().slice(0,-1)