1. ホーム
  2. ジャバスクリプト

[解決済み】express reqオブジェクトでリクエストパスを取得する方法

2022-04-11 10:55:39

質問

ブラウザのリクエストは /account ですが、req.path を記録すると '/' --- '/account' ではないと表示されます。

  //auth required or redirect
  app.use('/account', function(req, res, next) {
    console.log(req.path);
    if ( !req.session.user ) {
      res.redirect('/login?ref='+req.path);
    } else {
      next();
    }
  });

req.pathが/になっていますが、/account ?

解決方法は?

8年後のアップデート

req.path でした。 すでに全く同じことをやっている というのは、ここに書いたとおりです。この回答がどのように問題を解決し、正しい回答として受け入れられたかは覚えていませんが、現在は 有効な回答ではありません。 . この回答は無視してください。言及いただいた@mhodgesさん、ありがとうございます。

オリジナルの回答です。

もし本当にクエリ文字列なしで "path"だけを取得したい場合は、次のようにします。 url ライブラリを使用して、URLのパス部分のみをパースして取得します。

var url = require('url');

//auth required or redirect
app.use('/account', function(req, res, next) {
    var path = url.parse(req.url).pathname;
    if ( !req.session.user ) {
      res.redirect('/login?ref='+path);
    } else {
      next();
    }
});