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