を変更するにはどうすればNodeJSに多少新たなんだ、と現在の私は、現在の私のコードは、以下に示す、APIサーバーの残りの部分に私のアプリの要求を転送するためにExpressと要求(https://github.com/request/request)を使用:NodeJS要求ストリーム応答
app.use('/rest/*', function(req, res) {
req.pipe(request('http://ipaddress/api')).pipe(res);
});
このコードはREST APIサーバーが正常な場合に機能しますが、残りのapiサーバーがダウンすると、nodejsアプリケーションも停止します。要求ストリームは失敗し、エラーは私のアプリケーションで検出されないためです。 は、私はエラーを記録し、私のNodeJSアプリのクラッシュを防ぐことができます
app.use('/rest/*', function(req, res) {
req.pipe(request('http://ipaddress/api').on('error', function(err) {
console.log(err);
})).pipe(res);
});
このように、それは、ストリームのエラーを処理する1つの方法を提供要求githubのページをチェックし、エラーがそう起こったとき、私は応答を変更したいです
app.use('/rest/*', function(req, res) {
req.pipe(request('http://ipaddress/api').on('error', function(err) {
console.log(err);
// what I want to do in pseudocode
response.statusCode = 500;
response.json = {
reason: err.errno
};
})).pipe(res);
});
は私の問題を解決するためのいずれかの方法があります。変更された応答は、私は擬似コードで何をしたいのか、例えば、最後の1にパイプすることができますか?アイデアありがとう!
と同様に扱います。その代わりに、ノードサーバーからapiサーバーにHEADリクエストを出してオンラインになっているかどうかを確認し、それがうまくいく場合はAPIリクエストをクライアントにパイプします。それ以外の場合は、クライアントに任意の応答を送信できます。 –