Expressで前のURLを取得する方法


  1. リクエストオブジェクトを使用する方法: Expressのリクエストオブジェクトには、現在のリクエストに関する情報が含まれています。その中には前のURLも含まれています。
app.get('/current', (req, res) => {
  const previousUrl = req.headers.referer;
  res.send(`前のURL: ${previousUrl}`);
});

上記の例では、req.headers.refererを使用して前のURLを取得しています。これはリクエストヘッダーの"referer"フィールドに保存されています。ただし、この値は常に提供されるわけではないため、存在しない場合もあります。そのため、適切なエラーハンドリングが必要です。

  1. セッションを使用する方法: Expressのセッションミドルウェアを使用すると、セッションに前のURLを保存しておくことができます。次のように設定することができます。
const session = require('express-session');
const app = express();
app.use(session({
  secret: 'secret-key',
  resave: false,
  saveUninitialized: true,
}));
app.get('/current', (req, res) => {
  const previousUrl = req.session.previousUrl;
  res.send(`前のURL: ${previousUrl}`);
});
app.get('/next', (req, res) => {
  req.session.previousUrl = req.headers.referer;
  res.send('次のページ');
});

上記の例では、express-sessionパッケージを使用してセッションを設定しています。"previousUrl"というキーで前のURLをセッションに保存しています。そのため、req.session.previousUrlを使用して前のURLを取得することができます。

これらの方法を使用することで、Expressアプリケーションで前のURLを取得することができます。適切な方法を選択し、必要に応じてエラーハンドリングを行ってください。