2017-01-10 20 views
2

)成功とエラーレスポンスについて、Angular2のhttpモジュールで扱う方法が異なる理由と対処方法が不思議です。Angular2 httpエラーと成功レスポンス、成功レスポンス(

例コール:

http.post(url, payload).map(response => response.json()).toPromise() 

私はその後、コンソールに出力をパイプ、成功またはERR関数に約束し、ルート上に.then呼び出します。私の問題/質問は、成功の間に私のためにすべてのちょっととjsonのフォーマットが返ってきましたが、エラーのために私は大きなぎりぎりの完全なhtml応答を得ています。下の例では、レスポンスの_bodyに添付されている "errorMessageToUser"にアクセスできるようにしたいと考えています。達成する最良の方法は何ですか?

.then(
    success => console.log("success", success), 
    err => console.log("error", err)) 

そして、ここでは、この例では、エラー応答に

return res.status(401).json({ errorMessageToUser: "some error message" }); 

がエラーを生成エクスプレスのコードだ[問題の根は_bodyの内容を取得するためのクリーンな方法は何か、です?かExpressのパラメータを渡すバックする別の方法?]

{ 
    _body: "{"errorMessageToUser":"some error message."}", 
    headers: Headers, 
    ok: false, 
    status: 401, 
    statusText: "Unauthorized"... 
} 

成功応答の

{ group: "asdf", password: "asdf, "username: "asdf" } 

--end結果

が、私はエラーレスポンスにerrorMessageToUserに取得できるようにしたい、今の唯一の方法は、身体を開くJSONにその文字列を変換し、にErrorMessageを引き出し、ストリップすることです引用符を外す - 非常に汚い

答えて

1

解決策として、私はstatusTextを私が望むエラーメッセージに変更し、それをユーザーのUIにルーティングします。

res.statusMessage = "custom error message to user"; 
    return res.status(401).end(); 
関連する問題