Node.js 节点下载并保存gif

Node.js 节点下载并保存gif,node.js,Node.js,我想从网上下载一个gif并保存在本地驱动器中。 到目前为止,我已经: 1) 将gif作为缓冲区返回的getFile函数: import fs from 'fs' import https from 'https' let url = '//some gif url' const getFile = function(url) { return new Promise((res, rej) =>{ https.get(url, (resp) => {

我想从网上下载一个gif并保存在本地驱动器中。 到目前为止,我已经: 1) 将gif作为缓冲区返回的getFile函数:

import fs from 'fs'
import https from 'https'
let url = '//some gif url'

const getFile = function(url) {
    return new Promise((res, rej) =>{
        https.get(url, (resp) => {
            let data = [];
            resp.on('data', (chunk) => {
                data.push(chunk);
            });
            resp.on('end', () => {
                var buffer = Buffer.concat(data);
                res(buffer)
            });
        }).on("error", (err) => {
            rej(err);
        });
    })
}
2) 保存功能:

async function save() {
    let data = await getFile(url)

    fs.writeFile('./test.gif', data, (e, r) => {
        console.log(e,r) // null, undefined
    })
}

save()
该文件已保存并包含内容,但当我尝试打开它时,它会显示:无法加载图像

我试图将输出转换为utf8编码,但它给出了相同的结果

注意:我想让它在没有三方工具或“管道”的情况下与原始节点一起工作,以了解工作部件。

我想问题在于编码,但我不知道它到底是什么


谢谢

在文本编辑器中打开文件。前三个字节是否拼写为
GIF
?不,我看到了\00\00\00ftypeisom\00\00isomiso2avc1…我猜这个GIF是试图从imgur下载的吗?确切的url是:请注意,当您导航到url时,加载的是mp4文件,而不是GIF。将扩展名更改为mp4,您应该能够在系统媒体查看器中打开该文件。