我需要在nodejs中编程才能获取另一个网站的列表文件并保存在我的机器中。
例如:
function saveLocalFiles(files) {
for (var i in files) {
var file = fs.createWriteStream(path.join(__dirname, "media/" + files[i].FILE));
console.log(URL + files[i].FILE);
http.get(URL + files[i].FILE, function (response) {
response.pipe(file);
file.on('finish', function () {
file.close(() => {
console.log("ends ->" + files[i].FILE);
});
});
})
}
}
当我执行它时,我的代码不适用于多个文件。此外,我不知道它何时结束下载文件。有人能帮助我吗?。
谢谢。
答案 0 :(得分:2)
使用Promises并尝试将代码拆分为两个函数:
function saveLocalFiles(files) {
Promise
.all(files.map(file => saveLocalFile((URL, file.FILE))))
.then((files) => {
console.log(files);
})
}
function saveLocalFile(URL, FILE) {
return new Promise((resolve) => {
var file = fs.createWriteStream(path.join(__dirname, "media/" + FILE));
console.log(URL + FILE);
http.get(URL + FILE, function (response) {
response.pipe(file);
file.on('finish', function () {
file.close(() => {
console.log("ends ->" + FILE);
resolve(FILE);
});
});
})
})
}