【初心者向け】ExpressでURLパラメータを取得して処理を行う方法
ExpressでURLパラメータを取得する方法
クエリパラメータ
URLの末尾に ?
を付けて、パラメータ名と値のペアを key=value
形式で記述します。複数のパラメータを指定する場合は、&
で区切ります。
例:
http://localhost:3000/users?id=123&name=山田太郎
この場合、以下のコードでパラメータを取得できます。
const express = require('express');
const app = express();
app.get('/users', (req, res) => {
const id = req.query.id;
const name = req.query.name;
// パラメータを使って処理を行う
console.log(`ID: ${id}, 名前: ${name}`);
res.send('OK');
});
app.listen(3000);
パスパラメータ
URLのパスにパラメータを埋め込みます。コロン(:) を使ってパラメータ名と値を区切ります。
http://localhost:3000/users/123
const express = require('express');
const app = express();
app.get('/users/:id', (req, res) => {
const id = req.params.id;
// パラメータを使って処理を行う
console.log(`ID: ${id}`);
res.send('OK');
});
app.listen(3000);
- クエリパラメータは、検索機能など、パラメータの数が可変の場合に適しています。
ExpressでURLパラメータを取得するには、req.query
オブジェクトと req.params
オブジェクトを使用します。どちらを使うべきかは、状況によって異なります。
- 【Express】ルートパラメータの取得 - Zenn
- Express でクエリ文字列のパラメータを受け取る方法 - Node.js 入門
- nodeJS でURLからパラメータを渡す方法 - Qiita
- 【Node.js + Express】リクエストからパラメーターを取得する - Daily Up
クエリパラメータ
const express = require('express');
const app = express();
app.get('/users', (req, res) => {
const id = req.query.id;
const name = req.query.name;
// パラメータを使って処理を行う
console.log(`ID: ${id}, 名前: ${name}`);
res.send('OK');
});
app.listen(3000);
http://localhost:3000/users?id=123&name=山田太郎
パスパラメータ
const express = require('express');
const app = express();
app.get('/users/:id', (req, res) => {
const id = req.params.id;
// パラメータを使って処理を行う
console.log(`ID: ${id}`);
res.send('OK');
});
app.listen(3000);
このコードは、以下のURLでアクセスすると、id
の値を出力します。
http://localhost:3000/users/123
複数のクエリパラメータを取得するには、req.query
オブジェクトをループ処理します。
const express = require('express');
const app = express();
app.get('/users', (req, res) => {
for (const key in req.query) {
console.log(`${key}: ${req.query[key]}`);
}
res.send('OK');
});
app.listen(3000);
http://localhost:3000/users?id=123&name=山田太郎
デフォルト値
パラメータが存在しない場合にデフォルト値を設定するには、req.query.paramName || defaultValue
のように記述します。
const express = require('express');
const app = express();
app.get('/users', (req, res) => {
const id = req.query.id || 0;
// パラメータを使って処理を行う
console.log(`ID: ${id}`);
res.send('OK');
});
app.listen(3000);
http://localhost:3000/users
URLパラメータを取得するその他の方法
req.body オブジェクト
リクエストボディにパラメータが含まれている場合は、req.body
オブジェクトを使用して取得できます。
const express = require('express');
const app = express();
app.post('/users', (req, res) => {
const id = req.body.id;
const name = req.body.name;
// パラメータを使って処理を行う
console.log(`ID: ${id}, 名前: ${name}`);
res.send('OK');
});
app.listen(3000);
POST /users HTTP/1.1
Content-Type: application/json
{
"id": 123,
"name": "山田太郎"
}
querystring
モジュールを使用すると、クエリ文字列を解析してパラメータを取得できます。
const express = require('express');
const app = express();
const querystring = require('querystring');
app.get('/users', (req, res) => {
const parsed = querystring.parse(req.url.split('?')[1]);
const id = parsed.id;
const name = parsed.name;
// パラメータを使って処理を行う
console.log(`ID: ${id}, 名前: ${name}`);
res.send('OK');
});
app.listen(3000);
http://localhost:3000/users?id=123&name=山田太郎
URLのパースライブラリ
url-parse
などのURLパースライブラリを使用すると、URLを解析してパラメータを取得できます。
const express = require('express');
const app = express();
const urlParse = require('url-parse');
app.get('/users', (req, res) => {
const parsed = urlParse(req.url);
const id = parsed.query.id;
const name = parsed.query.name;
// パラメータを使って処理を行う
console.log(`ID: ${id}, 名前: ${name}`);
res.send('OK');
});
app.listen(3000);
http://localhost:3000/users?id=123&name=山田太郎
javascript node.js express