私はnode-request moduleを活用しようとしていますが、ドキュメントはそれほど大きくありません。私が有効なリソースに要求し、それを書き込み可能なストリームにパイプすると、すべて正常に動作します。しかし、無効なオブジェクトに対して要求を行うと、書き込み可能なストリームが作成されます。たとえば、次のスニペットを取る:foo.jpgというリソースがサーバー上に存在するノード要求 - 要求中にエラーが発生したかどうかを判断する方法?
var x = request("http://localhost:3000/foo.jpg");
var st = fs.createWriteStream("foo.jpg");
x.pipe(st);
場合は、データがストリームにパイプされ、そしてそれは、サーバー上のファイルの罰金を作成します。ただし、foo.jpg がサーバーにが存在しない場合は、空のコンテナファイルが作成されます。エラーイベントまたは要求が、私は以下のようなものを試してみた404を返されたかどうかを判断するために活用することができるものはないように見える:
var x = request("http://localhost:3000/foo.jpg", function(err, response, body) {
if(response.statusCode === 200) {
// Success
var st = fs.createWriteStream("foo.jpg");
x.pipe(st);
}
});
も:
request("http://localhost:3000/foo.jpg", function(err, response, body) {
if(response.statusCode === 200) {
// Success
var x = response.request;
var st = fs.createWriteStream("foo.jpg");
x.pipe(st);
}
});
NOに利用可能。アイデアはかなりシンプルです。私は、URLで識別されるファイルをローカルサーバーにコピーしたいだけです。リクエストが無効な場合(404など)、ファイルをパイプしません。要求が有効な場合は、ファイルをパイプします。助言がありますか?
あなたがここで達成したいとは思っていません。あなたはいつ何をコピーしたいのですか? – Qcom
神の愛のために、ノードリクエストの代わりに['request'](https://github.com/mikeal/request)を使います。 – Raynos