0

http.get を取得して、画像ファイルのリストをダウンロードしたいと考えています。リストを調べて変数 file_savedest に保存場所を表す文字列を入力する for ループがあります。そのため、ループの繰り返しごとに 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");
                }
            });
        });
    });
4

1 に答える 1

2

クロージャを使用します:

(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));
于 2012-04-27T02:21:28.007 に答える