[解決済み】Expressで完全なURLを取得する方法は?
質問
例えば、私のサンプルURLが
で、私は以下のルートを持っていると言います。
app.get('/one/two', function (req, res) {
var url = req.url;
}
の値は
url
は、次のようになります。
/one/two
.
を取得するにはどうすればよいのでしょうか?
フルURL
をExpressで表示できますか?
例えば、上記の場合、次のように受け取りたいのです。
http://example.com/one/two
.
解決方法は?
-
プロトコルは
req.protocol
. ドキュメントはこちら-
express 3.0以前は、想定されるプロトコルは
http
が表示されない限りreq.get('X-Forwarded-Protocol')
が設定され、値https
この場合、それがあなたのプロトコルであることがわかります。
-
express 3.0以前は、想定されるプロトコルは
-
ホストは
req.get('host')
Gopal が示したように -
URL に非標準のポートを使う必要がないことを祈りますが、もしそれを知る必要があるのなら、アプリケーションの状態にそれを持たせるでしょう。
app.listen
サーバ起動時に しかし、非標準のポートでローカルに開発する場合、Chromeはホストヘッダにポートを含めるようです。req.get('host')
が返ってきます。localhost:3000
といった具合に。したがって、少なくとも標準ポートの本番サイトで、expressアプリに直接ブラウズする場合(リバースプロキシなし)には、このようにhost
ヘッダは、URLのポートに関して正しいことを行っているようです。 -
パスの由来は
req.originalUrl
(@pgrassant さんありがとうございます)。これはクエリ文字列を含んでいることに注意してください。 req.urlとreq.originalUrlについては、こちらのドキュメントを参照してください。 . URLをどうするかは、あなたの意図次第です。originalUrl
と比較して、正しい値である場合もあれば、そうでない場合もあります。req.url
.
これらをすべて組み合わせて、絶対的なURLを再構築します。
var fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl;
関連
-
[解決済み] ブラウザによって異なるURLの最大長とは?
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] package.jsonのチルダ(~)とキャレット(^)の違いは何ですか?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
-
[解決済み] JavaScriptでURLをエンコードする?
-
[解決済み] jQueryで現在のURLを取得する?
-
[解決済み] PHPで完全なURLを取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] テスト
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み】Mongooseで、日付でソートするにはどうしたらいいですか?(node.js)
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み】AWS lambda function エラー - モジュール 'index' をインポートできません。エラー
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] joiライブラリを使用して2つの時間を比較する方法
-
[解決済み] のエラーが発生しました。これはおそらくnpmの問題ではありません。上に追加のログ出力があると思われます
-
[解決済み] エラーメッセージ MongoError: bad auth URI 文字列で認証に失敗しました。
-
[解決済み] Express.js:リモートクライアントアドレスを取得する方法