Node.js Expressでパスパラメータの取得方法

スポンサーリンク

Node.js Expressでパスパラメータの取得方法

http://localhost:5000/sample/123でパスパラメータの123を取得したい場合"/sample/:id"でエンドポイントを定義しreq.params.idで取得できる。また123は文字列なのでabc,1b3なども取得できる。ただし/sample/123/abcのように更に追加された場合はエラーとなる。

コード例

const express = require("express");
const app = express();
const PORT = process.env.PORT || 5000;

app.get("/sample/:id", (req, res) => {
  res.json(req.params.id);
});

app.listen(PORT, () => {
  console.log(`Listening *: ${PORT}`);
});

id?

/sample/:idと違い名前付きオプションとなりhttp://localhost:5000/sample,http://localhost:5000/sample/も追加でundefinedで取得できる。

const express = require("express");
const app = express();
const PORT = process.env.PORT || 5000;

app.get("/sample/:id?", (req, res) => {
  res.json(req.params.id);
});

app.listen(PORT, () => {
  console.log(`Listening *: ${PORT}`);
});

id*

"/sample/:id"に加えて/sample/123/abcのように更に追加されたケースでも取得できる(この場合は123が取得される)

const express = require("express");
const app = express();
const PORT = process.env.PORT || 5000;

app.get("/sample/:id*", (req, res) => {
  res.json(req.params.id);
});

app.listen(PORT, () => {
  console.log(`Listening *: ${PORT}`);
});

正規表現

"/sample/:id(\\d+)"で数字のみ許可できる

const express = require("express");
const app = express();
const PORT = process.env.PORT || 5000;

app.get("/sample/:id(\\d+)", (req, res) => {
  res.json(req.params.id);
});

app.listen(PORT, () => {
  console.log(`Listening *: ${PORT}`);
});