Вы не можете скачать файл в node.js, как это.После того, как вы загрузили файл, вам нужно записать его в поток, чтобы браузер мог загрузить его.
Я не уверен, как добиться этого с библиотекой fetch
, но вы можете сделать то же самое просто с запрос как показано ниже.
request('https://geolite.maxmind.com/download/geoip/database/GeoLite2-City-CSV.zip')
.pipe(fs.createWriteStream('GeoLite2-City-CSV.zip'))
.on('close', function () {
console.log('File written!');
});
ОБНОВЛЕНИЕ: Вы также можете использовать функцию ниже для загрузки вашего файла.
async function download( url, name ) {
const res = await fetch(url);
await new Promise((resolve, reject) => {
const fileStream = fs.createWriteStream(name);
res.body.pipe(fileStream);
res.body.on("error", (err) => {
reject(err);
});
fileStream.on("finish", function() {
resolve();
});
});
}
download('https://geolite.maxmind.com/download/geoip/database/GeoLite2-City-CSV.zip', 'GeoLite2-City-CSV.zip')