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}`);
});