http.get循环下载文件列表

时间:2012-04-27 02:17:02

标签: node.js

我想让http.get下载图像文件列表。 我有一个for循环来遍历列表并使用表示保存位置的字符串填充变量file_savedest。 因此,在每次循环迭代时调用http.get,如何将file_savedest提供给http.get,以便知道要下载和保存的文件。

    var file_savedest = dir+"/"+iname;

    http.get(options, function(res){
        var imagedata = '';
        res.setEncoding('binary');

        res.on('data', function(chunk){
            imagedata += chunk
        });

        res.on('end', function(){
            fs.writeFile(file_savedest, imagedata, 'binary', function(err){
                if (err){
                    console.log(err);
                } else {
                    console.log("File:" + file_savedest + " saved");
                }
            });
        });
    });

1 个答案:

答案 0 :(得分:2)

使用closure

(function(file_savedest){
    http.get(options, function(res){
        var imagedata = '';
        res.setEncoding('binary');

        res.on('data', function(chunk){
            imagedata += chunk
        });

        res.on('end', function(){
            fs.writeFile(file_savedest, imagedata, 'binary', function(err){
                if (err){
                    console.log(err);
                } else {
                    console.log("File:" + file_savedest + " saved");
                }
            });
        });
    });
}(dir+"/"+iname));