すみません、私はちょっと迷っています。どうすればconsole.logresponse.statusCode
配管するとき?
var express = require('express');
var path = require('path');
var request = require('request');
var fs = require('fs');
var app = express();
var port = 8000;
var destination = fs.createWriteStream('./downloads/google.html');
var url = "http://www.google.com/";
request(url).pipe(destination)
.on("finish", function() {
console.log("done");
console.log(response.statusCode); // <<<<<<<<<<<<<<<<<<<<<<<<<<<< this
})
.on("error", function(err){
console.log(err);
});
app.listen(port, function(){
console.log('running server on ' + port);
});
response
からrequest
イベントをキャッチする必要があります。パイプからのfinished
イベントには含まれません。パイプの前にエラーをキャッチすることも検討する必要があります。これは、ネットワークエラーをキャッチする場所です。パイプの後、ファイルエラーをキャッチします。
request(url)
.on('response', function(response) {
console.log(response.statusCode) // <--- Here 200
})
.on("error", function(err){
console.log("Problem reaching URL: ", err);
})
.pipe(destination)
.on("finish", function(response) {
console.log("done");
})
.on("error", function(err){
console.log("Problem writing file: ", err);
});