1. ホーム
  2. node.js

[解決済み] Expressで"? "の後にあるGETパラメータにアクセスするにはどうすればよいですか?

2022-03-16 14:05:50

質問

このようなクエリのパラメータを取得する方法は知っています。

app.get('/sample/:id', routes.sample);

この場合 req.params.id でパラメータを取得します(例 2/sample/2 ).

ただし、以下のようなURLの場合は /sample/2?color=red という変数にどのようにアクセスすればよいのでしょうか? color ?

試してみた req.params.color が、うまくいきませんでした。

どうすればいいですか?

で、確認したところ エクスプレスリファレンス を発見しました。 req.query.color を使えば、私が探している値を返してくれます。

req.paramsはURLに':'があるものを指し、req.queryは'?'に関連するものを指します。

GET /something?color1=red&color2=blue

そしてexpressでは、ハンドラ。

app.get('/something', (req, res) => {
    req.query.color1 === 'red'  // true
    req.query.color2 === 'blue' // true
})