尝试从URL下载并用node.js保存到文件中.这是我的问题
Trying to download from URL and save to file with node.js.. what is my issue?
我想从URL下载特定的文件,但似乎只写出一个文件时遇到了问题。以下是我的代码:
var filenames=["a.txt", "b.txt", "c.txt"];
for(var i in filenames) {
var url = 'http://myhomepage/'+filenames[i];
restler.get(url, {
}).on('complete', function (data) {
fs.writeFile('./'filenames[i], data, function(err, data) {
})
});
}
似乎唯一被写出来的文件是"c.txt",而不是其他文件。问题是什么?如何解决?
这是因为restler.get
是异步的,在写入第一个文件时,for
循环位于最后一个元素上。你可以通过使用forEach并为你迭代的每个elem创建一个单独的作用域来解决这个问题:
var filenames=["a.txt", "b.txt", "c.txt"];
filenames.forEach(function(filename) {
var url = 'http://myhomepage/'+filename;
restler.get(url, {
}).on('complete', function (data) {
fs.writeFile('./' + filename, data, function(err, data) {
})
});
}
} );
或者,如果你想减少实现的更改,你可以创建一个包装函数来创建一个单独的作用域:
var filenames=["a.txt", "b.txt", "c.txt"];
for(var i in filenames) {
(function(i) {
var url = 'http://myhomepage/'+filenames[i];
restler.get(url, {
}).on('complete', function (data) {
fs.writeFile('./'filenames[i], data, function(err, data) {
})
});
}(i));
}
相关文章:
- 将Windows文件路径组织到文件夹中
- Angular 2:在本地.json文件上找不到文件
- 放大弹出生成“;找不到文件”;YouTube视频的错误
- Web 地址虚拟目录会断开外部 JavaScript 链接,因此找不到文件
- 使用SeleniumWebdriver将文本复制到文件时出现编译错误的解决方案
- 如何将旋转的画布元素保存到文件中
- 使用ImageMagick生成图像而不保存到文件,但仍在网站上显示
- 将Javascript从PHP变量保存到文件
- 将响应另存为文件
- 将从 URL 输出的 JSON 保存到文件 javascript
- 将图像输出到浏览器,然后再将其保存到文件夹
- 使用ajax将图像上传到文件数据库有疑问
- 读取一个本地文件,编码为base64,我想给用户一个将结果保存到文件的选项
- kenodui树视图滚动到节点问题
- 如何先上传文件,然后提交到插入问题.php
- 问题-节点js正在将文件从文件夹x移动到文件夹y
- 尝试从URL下载并用node.js保存到文件中.这是我的问题
- 用ajax/javascript将文本文件中的数据加载到html问题中
- 将bootstrap主题安装到Rails 4应用程序中- javascript文件问题
- 将键:值对添加到数组并将其发送到文件的问题