1

Node.jsサイト(Express上に構築)をHerokuに移行しましたが、アプリケーションエラーの場合、Herokuは、アプリが返すものではなく、カスタムエラーページを表示します。

Expressはすでにそれを行うメカニズムを提供しており、私のアプリはそれを行うので、そうしないようにしたいと思います。アプリが返すものをすべて使用するようにHerokuに指示することはできますか?

これを好む理由の1つの例は、アプリのエラーページでログイン状態またはログアウト状態を適切に表示できるためです。これは、S3などの静的ページでは表示できませんでした。もう1つの例は、私のアプリが実際には正確な5xxステータスコードに基づいて異なるページを表示するのに対し、Herokuはすべての5xxコードを同じように扱うことです。

編集:別の特に注目すべき例を考えてみましょう:私たちのアプリはすべてのエラーインスタンスに対して一意のIDを作成し、そのIDをエラーページでユーザーに表示します。これにより、ユーザーが私たちに連絡した場合、その正確なエラーインスタンスを検索できます。ログ。静的ページではそれを行うことはできません。

Herokuはステータスコードを介してのみエラーを検出するので、エラーが発生した場合は200を返送できます。しかし、それは間違っているようです。たとえば、404の場合は200を返送しません。(考えてみると、HerokuのREST APIは5xxのJSONをどのように返すのでしょうか?HerokuのカスタムエラーページがHTML応答のみをオーバーライドすることを願っていますか?)

前もって感謝します!

4

1 に答える 1

1

質問に直接答えるには-いいえ、Herokuエラーページをオフにすることはできません…</ p>

Herokuが処理するエラーは、アプリケーションが処理しないエラーであるため、アプリケーションがエラーをキャッチしてページを返す場合、Herokuは介入しません。

確かにノードではなく、これを行う多くのアプリがあります。

于 2012-05-11T13:29:44.513 に答える