是的,可以使用Node.js的内置模块http
和fs
来实现文件下载,不需要使用额外的框架如Express。以下是一个示例代码:
const http = require('http');
const fs = require('fs');
const fileUrl = 'http://example.com/file.txt';
const savePath = 'path/to/save/file.txt';
const file = fs.createWriteStream(savePath);
http.get(fileUrl, (response) => {
response.pipe(file);
file.on('finish', () => {
file.close();
console.log('文件下载完成');
});
}).on('error', (err) => {
fs.unlink(savePath, () => {}); // 删除未完成的文件
console.error('文件下载失败:', err.message);
});
上述代码通过http.get
方法发送HTTP请求获取文件,并使用fs.createWriteStream
创建一个可写流来保存文件。当文件下载完成后,会触发finish
事件,然后关闭文件流。如果下载过程中出现错误,会触发error
事件,并删除未完成的文件。
这种方式适用于简单的文件下载场景,如果需要更复杂的功能,如断点续传、下载进度监控等,可能需要使用更专业的下载库或框架。
领取专属 10元无门槛券
手把手带您无忧上云