2017-07-04 10 views
1

私は、このリンクをクリックすると、ユーザーの電子メールに送信した'localhost:3000/verify/a5d5sd'のようなURLを持っています。 、私は、サーバーとデータベース(MongoDB)のいくつかのものをチェックし、オブジェクトを使って応答を返すためにリンクのparam(a5d5sd)を使用しています。リンクがクリックされたり新しいタブで開くと、私のAngular 2コンポーネントからのHTMLではなく、サーバーからのものです。AngularとNodeJS GETリクエストurl(params付き)はレスポンスオブジェクトのみを返すHTML

私の角度2ルートの設定モジュールでは、私は

{ 
    path: 'verify/:id', 
    component: MyComponent 
    }, 

のようなルートをconfigコン行なったし、このコンポーネントのngOnInitに、私はのようなURLでGET HTTPリクエストを確認しますサービスメソッドを呼び出しています/:idparam(:id)私はリクエストを行うことができるように、@ angular/routerからActivatedRouteを使って取得します。

は私の急行を使用するために、私は次のコードを持っているようにアドバイスしてこれを処理するには、次の

app.use(express.static(path.join(__dirname, 'client/dist'))); 

app.get('*', function(req, res) { 
    res.sendFile(__dirname + '/client/dist/index.html'); 
}) 

さえしてみました:URLon

このコードは、直接のナビゲーションのために働く
app.all('*', function(req, res) { 
    res.sendFile(__dirname + '/client/dist/index.html'); 
}) 

(貼り付け検索バー)を更新し、POSTPUTリクエストのみをリフレッシュします。GETリクエストはresp私は直接URLにアクセスしたり、ページをリフレッシュするときに、DOMはサーバーレスポンスで書かれていますが、HTMLではなく、何か助けていただければ幸いです。

答えて

2

した後、すべてのルートを定義し、index.htmlファイル用のルートを追加

// Set your routes here 
app.use('/api', api); 

// Catch all other routes and return the index file 
app.get('*', function(req, res) { 
    res.sendFile(path.join(__dirname, 'path/to/index.html')); //path from the root dir 
}); 

これは私のための仕事でした。 ありがとう

+0

あなたはそれが問題のルートの順序だと言っていますか? – Teebo

+0

はい。私はそう思う。他のルート定義の上に*を追加すると、ノードは*ルートにのみヒットします。 –

+0

さて、私は実際に解決策をテストすることはできませんが、上記の*を移動しましたか、あなたのケースでは機能しません。 – Teebo

関連する問題