2017-06-26 24 views
2

私はExpressJS私は 角度プラットフォームサーバの応答

は、私は次のようにルートオブジェクトを作成するページが見つかりませんのために404に200からのHTTPステータスコードを変更したい とSSRプラットフォームサーバを使用しています

[ 
    { path: '', component: HomeComponent }, 
    { path: '**', component: NotFoundComponent, pathMatch: 'full' } 
] 

それはクライアント側で正常に動作しているが、私は、私はエラーをスローし、ExpressJS

0でそれを処理しようとNodeJS

のステータスコードを変更するための任意のアイデアを持っていません

NotFoundComponentでは、OnInitでエラーをスローしますが、角度をキャプチャしてエラーを再度取得して、ステータス= 200を返します。

私が使用しています

答えて

3

@ nguniversal/

あなたは[表現エンジン] からあなたのアプリへのカスタムプロバイダを注入することができるエンジン発現すると、あなたは、レンダリング結果 を変更することができますし、エラー

https://github.com/angular/universal/tree/master/modules/ng-express-engine

を扱うことができます

が、要求と応答が既に

https://github.com/angular/universal/blob/master/modules/ng-express-engine/src/main.ts#L66

を注入します

、要求と応答がexpressjsているので、あなたがこのようにそれを使用することができます

オブジェクト:

import { RESPONSE } from '@nguniversal/express-engine/tokens' 

とあなたのコントローラやサービス

constructor(.... OtherDependencies....., @Optional() @Inject(RESPONSE) private readonly res: any) { } 

とどこかngOnInitのようなあなたのコード内で

if(this.res) { 
    this.res.status(404) 
} 

停止したい場合角度

return this.res.end(); 

またはあなたがここに

を他の有効なExpressJsの解像度のコードを追加することができます
関連する問題