如何使用Node.js下载文件(不使用第三方库)?
2022-08-29 22:41:27
如何在不使用第三方库的情况下使用 Node.js 下载文件?
我不需要任何特别的东西。我只想从给定的URL下载文件,然后将其保存到给定的目录。
如何在不使用第三方库的情况下使用 Node.js 下载文件?
我不需要任何特别的东西。我只想从给定的URL下载文件,然后将其保存到给定的目录。
您可以创建一个 HTTP 请求并将其管道传输到可写文件流中:GET
response
const http = require('http'); // or 'https' for https:// URLs
const fs = require('fs');
const file = fs.createWriteStream("file.jpg");
const request = http.get("http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg", function(response) {
response.pipe(file);
// after download completed close filestream
file.on("finish", () => {
file.close();
console.log("Download Completed");
});
});
如果要支持在命令行上收集信息(如指定目标文件或目录或 URL),请查看 Commander 之类的内容。
不要忘记处理错误!以下代码基于奥古斯托·罗曼的回答。
var http = require('http');
var fs = require('fs');
var download = function(url, dest, cb) {
var file = fs.createWriteStream(dest);
var request = http.get(url, function(response) {
response.pipe(file);
file.on('finish', function() {
file.close(cb); // close() is async, call cb after close completes.
});
}).on('error', function(err) { // Handle errors
fs.unlink(dest); // Delete the file async. (But we don't check the result)
if (cb) cb(err.message);
});
};