Express.js で GET リクエストのクエリ文字列から変数を取得する方法
Node.js の Express.js で GET (クエリ文字列) 変数を取得する方法
概要
方法 1: req.query オブジェクトを使う
req.query
オブジェクトは、GET リクエストのクエリ文字列のパラメータをすべて含むオブジェクトです。 このオブジェクトを使って、個々のパラメータにアクセスすることができます。
例:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
// クエリ文字列から "name" パラメータを取得
const name = req.query.name;
// クエリ文字列から "age" パラメータを取得
const age = req.query.age;
// クエリパラメータを使って何か処理を行う
res.send(`Hello, ${name}! You are ${age} years old.`);
});
app.listen(3000);
この例では、req.query.name
と req.query.age
を使って、クエリ文字列から name
と age
パラメータを取得しています。
方法 2: express-querystring モジュールを使う
express-querystring
モジュールは、クエリ文字列のパラメータをより簡単に解析するためのモジュールです。
const express = require('express');
const app = express();
const qs = require('express-querystring');
// express-querystring モジュールをミドルウェアとして使う
app.use(qs());
app.get('/', (req, res) => {
// クエリ文字列から "name" パラメータを取得
const name = req.query.name;
// クエリ文字列から "age" パラメータを取得
const age = req.query.age;
// クエリパラメータを使って何か処理を行う
res.send(`Hello, ${name}! You are ${age} years old.`);
});
app.listen(3000);
この例では、express-querystring
モジュールをミドルウェアとして使って、クエリ文字列のパラメータを自動的に解析しています。
方法 3: URLSearchParams オブジェクトを使う
URLSearchParams オブジェクトは、URL のクエリ文字列のパラメータを操作するためのオブジェクトです。
const express = require('express');
const app = express();
app.get('/', (req, res) => {
// URLSearchParams オブジェクトを作成
const params = new URLSearchParams(req.url);
// クエリ文字列から "name" パラメータを取得
const name = params.get('name');
// クエリ文字列から "age" パラメータを取得
const age = params.get('age');
// クエリパラメータを使って何か処理を行う
res.send(`Hello, ${name}! You are ${age} years old.`);
});
app.listen(3000);
この例では、URLSearchParams
オブジェクトを使って、クエリ文字列のパラメータを取得しています。
Express.js で GET リクエストのクエリ文字列から変数を取得するには、いくつかの方法があります。 どの方法を使うかは、状況によって異なります。
方法 1: req.query オブジェクトを使う
const express = require('express');
const app = express();
app.get('/', (req, res) => {
// クエリ文字列から "name" パラメータを取得
const name = req.query.name;
// クエリ文字列から "age" パラメータを取得
const age = req.query.age;
// クエリパラメータを使って何か処理を行う
res.send(`Hello, ${name}! You are ${age} years old.`);
});
app.listen(3000);
const express = require('express');
const app = express();
const qs = require('express-querystring');
// express-querystring モジュールをミドルウェアとして使う
app.use(qs());
app.get('/', (req, res) => {
// クエリ文字列から "name" パラメータを取得
const name = req.query.name;
// クエリ文字列から "age" パラメータを取得
const age = req.query.age;
// クエリパラメータを使って何か処理を行う
res.send(`Hello, ${name}! You are ${age} years old.`);
});
app.listen(3000);
const express = require('express');
const app = express();
app.get('/', (req, res) => {
// URLSearchParams オブジェクトを作成
const params = new URLSearchParams(req.url);
// クエリ文字列から "name" パラメータを取得
const name = params.get('name');
// クエリ文字列から "age" パラメータを取得
const age = params.get('age');
// クエリパラメータを使って何か処理を行う
res.send(`Hello, ${name}! You are ${age} years old.`);
});
app.listen(3000);
実行方法
上記
GET (クエリ文字列) 変数を取得するその他の方法
クエリ文字列を直接解析する
req.url
プロパティには、リクエストされた URL が含まれています。 このプロパティを使って、クエリ文字列を直接解析することができます。
const express = require('express');
const app = express();
app.get('/', (req, res) => {
// URL からクエリ文字列を取得
const query = req.url.split('?')[1];
// クエリ文字列を解析
const params = new URLSearchParams(query);
// クエリ文字列から "name" パラメータを取得
const name = params.get('name');
// クエリ文字列から "age" パラメータを取得
const age = params.get('age');
// クエリパラメータを使って何か処理を行う
res.send(`Hello, ${name}! You are ${age} years old.`);
});
app.listen(3000);
この方法は、シンプルですが、クエリ文字列が複雑な場合、解析が難しくなる可能性があります。
qs
モジュールは、クエリ文字列を解析するためのモジュールです。 このモジュールを使うと、より簡単にクエリ文字列からパラメータを取得することができます。
const express = require('express');
const app = express();
const qs = require('qs');
app.get('/', (req, res) => {
// クエリ文字列を解析
const params = qs.parse(req.url);
// クエリ文字列から "name" パラメータを取得
const name = params.name;
// クエリ文字列から "age" パラメータを取得
const age = params.age;
// クエリパラメータを使って何か処理を行う
res.send(`Hello, ${name}! You are ${age} years old.`);
});
app.listen(3000);
この方法は、req.query
オブジェクトを使う方法よりも柔軟性があり、複雑なクエリ文字列にも対応することができます。
ボディパーサーは、リクエストボディを解析するためのミドルウェアです。 ボディパーサーを使うと、クエリ文字列だけでなく、リクエストボディのパラメータも取得することができます。
const express = require('express');
const app = express();
const bodyParser = require('body-parser');
// ボディパーサーをミドルウェアとして使う
app.use(bodyParser.urlencoded({ extended: true }));
app.get('/', (req, res) => {
// クエリ文字列から "name" パラメータを取得
const name = req.query.name;
// クエリ文字列から "age" パラメータを取得
const age = req.query.age;
// リクエストボディから "message" パラメータを取得
const message = req.body.message;
// クエリパラメータとリクエストボディのパラメータを使って何か処理を行う
res.send(`Hello, ${name}! You are ${age} years old. Your message is: ${message}`);
});
app.listen(3000);
この方法は、クエリ文字列だけでなく、リクエストボディのパラメータも取得したい場合に便利です。
node.js query-string express