複数のページをロードしてコンテンツを分析する node.js でアプリケーションを構築しています。
node.js はチャンクを送信するため、チャンクを分析できます。チャンクにたとえば index,nofollow が含まれている場合、その接続を閉じて残りを続行したいと思います。
var host = 'example.com',
total = '',
http = require('http');
var req = http.request({hostname: host, port: 80, path: '/'}, function(res) {
res.on('data', function(chunk) {
total += chunk;
if(chunk.toString().indexOf('index,nofollow') == -1) {
// do stuff
} else {
/*
* WHAT TO DO HERE???
* how to close this res/req?
* close this request (goto res.end or req.end????
*/
}
}).on('end', function() {
// do stuff
});
}).on('error', function(e) {
// do stuff
console.log("Got error: " + e.message);
});
私が理解できない唯一のことは、その接続を終了することです。または、データが必要ないため、データの取得を停止します..
req.end(); 機能しません..データ/チャンクの取得を続けます..(私のテストでは14個のチャンクを取得しますが、最初のチャンクで他のチャンクは必要ないことがわかっているので、リクエストを終了したいです/応答)。
私は今、他のチャンクの分析をスキップするブール値を持っていますが、私の意見では、データの取得をスキップする方が良いですか?
どの関数を呼び出すか? それとも、すべてを取得する必要があるため不可能ですか?