因此,我正在使用node.js使用“ node test.js”运行一些JavaScript,并希望从给定的URL中保存文件,但是每当我搜索下载文件(如预期的那样)时,我只会找到有关如何触发浏览器下载。我正在努力解决该怎么做。任何帮助,不胜感激。
谢谢,Glen x
const fetch = require('node-fetch');
const fs = require('fs');
fetch("https://lex-audio.useremarkable.com/mp3/viscera_gb_1.mp3").then(res => res.text()).then(
txt => {
fs.writeFile('src/assets/audio.mp3', txt, err => {
if (err) {
console.log(err);
}
} );
}
);
node-fetch当然可以用于下载http资源(例如MP3文件)。
但是,MP3数据不是UTF-8文本,因此您需要将下载视为二进制文件。替换res.text()
为res.buffer()
。这项更改对我有用,我可以播放下载的音频文件:
const fetch = require('node-fetch');
const fs = require('fs');
const url = "https://lex-audio.useremarkable.com/mp3/viscera_gb_1.mp3";
fetch(url).then(res => res.buffer()).then(buffer => {
return fs.promises.writeFile('audio.mp3', buffer);
}).then(() => {
console.log("done");
}).catch(err => {
console.log(err);
});
注意,由于我们已经在使用诺言fetch()
,因此我使用了诺言版本,writeFile
因为这两种方式的错误处理和成功跟踪都更加清晰地集成在一起。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句