nightmare的下载管理器的nodejs代码
时间: 2023-12-13 22:05:02 浏览: 135
以下是一个简单的 Node.js 下载管理器的示例代码:
```javascript
const fs = require('fs');
const https = require('https');
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('请输入文件的 URL:', (url) => {
const fileName = url.split('/').pop();
const file = fs.createWriteStream(fileName);
https.get(url, (response) => {
response.pipe(file);
file.on('finish', () => {
file.close();
console.log(`${fileName} 下载完成!`);
rl.close();
});
}).on('error', (err) => {
fs.unlink(fileName);
console.error(`下载失败:${err.message}`);
rl.close();
});
});
```
代码解释:
1. 引入必要的模块:fs、https 和 readline。
2. 使用 readline 创建一个 interface 对象,用于获取用户输入。
3. 使用 `rl.question()` 方法提示用户输入文件的 URL,并在回调函数中处理用户输入。
4. 根据 URL 获取文件名,创建一个可写流(使用 `fs.createWriteStream()` 方法)。
5. 使用 https 模块的 `get()` 方法下载文件,并将响应管道传输到文件可写流中(使用 `response.pipe()` 方法)。
6. 监听文件可写流的 `finish` 事件,当文件下载完成时关闭文件可写流,并输出下载完成信息。
7. 在 `https.get()` 方法中注册 `error` 事件,当下载过程中发生错误时,删除已下载的文件,并输出下载失败信息。
8. 关闭 readline interface 对象。
注意:以上示例代码仅用于演示下载文件的基本流程,实际应用中还需要考虑更多的错误处理和安全性问题。
阅读全文