56

リモートファイルを読み取る最良の方法は何ですか? ファイル全体(チャンクではなく)を取得したい。

次の例から始めました

var get = http.get(options).on('response', function (response) {
    response.on('data', function (chunk) {
        console.log('BODY: ' + chunk);
    });
});

ファイルをcsvとして解析したいのですが、これにはチャンクデータではなくファイル全体が必要です。

4

4 に答える 4

109

これにはリクエストを使用します:

request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))

または、最初にファイルに保存する必要がなく、CSV をメモリに読み込むだけでよい場合は、次の操作を実行できます。

var request = require('request');
request.get('http://www.whatever.com/my.csv', function (error, response, body) {
    if (!error && response.statusCode == 200) {
        var csv = body;
        // Continue with your processing here.
    }
});

于 2013-01-27T21:50:49.193 に答える
26

外部ライブラリを使用せずに、このようなことができます。

const fs = require("fs");
const https = require("https");

const file = fs.createWriteStream("data.txt");

https.get("https://www.w3.org/TR/PNG/iso_8859-1.txt", response => {
  var stream = response.pipe(file);

  stream.on("finish", function() {
    console.log("done");
  });
});
于 2018-08-17T16:50:26.483 に答える
25
http.get(options).on('response', function (response) {
    var body = '';
    var i = 0;
    response.on('data', function (chunk) {
        i++;
        body += chunk;
        console.log('BODY Part: ' + i);
    });
    response.on('end', function () {

        console.log(body);
        console.log('Finished');
    });
});

これに変更すると、機能します。コメントはありますか?

于 2013-01-28T00:33:01.737 に答える