2016-10-27 2 views
-2

res.redirect( '/ signin')を実行する必要がありますが、res.renderでresが使用されています。 リダイレクトを実行するために、新しいレスポンスオブジェクト(res)を定義する方法はありますか?Node.js/Expressでレスポンスオブジェクトを作成する方法

+0

リダイレクトするか、ページをレンダリングしますか?それらは2つの相互に排他的なものであり、少なくともサーバー側から見ればわかります。 – robertklep

+0

@roberklep私はリダイレクトしたい。 –

+0

それから、 'res.render'を使わないでください。 – robertklep

答えて

0

書き込みを使用して接続を開いたままにしておくと、リダイレクトを追加できるはずです。たとえば... - >

res.render('index', function(err, html) { 
    res.write(html); 
    res.redirect('/signin'); 
}); 
+0

あなたの答えはこのシンプルな形で機能しましたが、私はあなたが示唆したようにそれを開いたままにすることができないほど深いです。 –

0

あなたはそれres.render使用する場合(コールバックを渡さない限り)そのドキュメント(http://expressjs.com/en/4x/api.html#res.render)によると、自動的に応答を送信します。

新しいresオブジェクトを作成するか、res.render呼び出しを元に戻す方法が見つかりませんでした。いずれにしても、別のURLにリダイレクトしたい場合は、テンプレートをレンダリングしないでください。これは、サーバーで行われる作業が少なく、ユーザーの待ち時間が短くなります。

+0

私はリダイレクトを行う必要がありますので、私はrouter.getこのリクエストを取得し、最終的にサインインしなければならなかったクライアントに戻ってくる新しいサインインページを開きます。 –

関連する問題