ExpressでURLとPOSTパラメータを取得する方法
序章
多くの場合、 Express を使用してアプリケーションを構築する場合、ユーザーから情報を取得する必要があります。 最も一般的な方法の2つは、URLパラメーターとPOSTパラメーターです。
この記事では、Expressを使用してリクエストからURLパラメーターとPOSTパラメーターを取得する方法を学習します。
前提条件
このチュートリアルを完了するには、次のものが必要です。
- Node.jsはローカルにインストールされます。これは、Node.jsのインストール方法とローカル開発環境の作成に従って実行できます。
- POSTリクエストを送信するには、Postmanなどのツールをダウンロードしてインストールする必要があります。
注:以前は、このチュートリアルでは req.param
. これはv4.11.0で非推奨になりました。 このチュートリアルでは、インストールも推奨しています body-parser
. v4.16.0以降、これは不要になりました。
このチュートリアルは、Nodev15.4.0で検証されました。 npm
v7.10.0、および express
v4.17.1。
ステップ1-プロジェクトの設定
まず、ターミナルウィンドウを開き、新しいプロジェクトディレクトリを作成します。
- mkdir express-params-example
次に、新しく作成されたディレクトリに移動します。
- cd express-params-example
この時点で、新しいnpmプロジェクトを初期化できます。
- npm init -y
次に、をインストールする必要があります express
パッケージ:
- npm install express@4.17.1
この時点で、Expressを使用する準備ができた新しいプロジェクトができました。
新しいを作成します server.js
ファイルを作成し、コードエディタで開きます。
const express = require('express');
const app = express();
const port = process.env.PORT || 8080;
// routes will go here
app.listen(port);
console.log('Server started at http://localhost:' + port);
ターミナルウィンドウに戻り、アプリケーションを実行します。
- node server.js
編集するたびにノードサーバーを再起動する必要があります server.js
. これが面倒な場合は、nodemonを使用してNode.jsアプリを自動的に再起動する方法を参照してください。
次に、グラブパラメータをテストするために2つのルートを作成しましょう。
ステップ2–使用 req.query
URLパラメータ付き
req.query
URLパラメータの値を取得するために使用できます。
次の例を考えてみましょう。
http://example.com/api/users?id=4&token=sdfa3&geo=us
このURLには、次のパラメータが含まれています id
, token
、 と geo
(ジオロケーション):
id: 4
token: sdfa3
geo: us
再訪 server.js
コードエディタを使用して、次のコード行を追加します。 req.query.id
, req.query.token
、 と req.query.geo
:
// ...
// routes will go here
// ...
app.get('/api/users', function(req, res) {
const user_id = req.query.id;
const token = req.query.token;
const geo = req.query.geo;
res.send({
'user_id': user_id,
'token': token,
'geo': geo
});
});
app.listen(port);
console.log('Server started at http://localhost:' + port);
サーバーが稼働している状態で、URLを使用します http://localhost:8080/api/users?id=4&token=sdfa3&geo=us
WebブラウザまたはPostmanのいずれかで。
サーバーは次のように応答します user_id
, token
、 と geo
値。
ステップ3–使用 req.params
ルート付き
req.params
ルートから値を取得するために使用できます。
次のURLを検討してください。
http://localhost:8080/api/1
このURLには、 api
と :version
(1
).
再訪 server.js
コードエディタを使用して、次のコード行を追加します。 req.params.version
:
// ...
// routes will go here
// ...
app.get('/api/:version', function(req, res) {
res.send(req.params.version);
});
app.listen(port);
console.log('Server started at http://localhost:' + port);
サーバーが稼働している状態で、URLを使用します http://localhost:8080/api/1
WebブラウザまたはPostmanのいずれかで。
サーバーは次のように応答します version
価値。
ステップ4–使用 .param
ルートハンドラー付き
次に、Expressを使用しています .param
特定のパラメータを取得する関数。 これはミドルウェアと見なされ、ルートが呼び出される前に実行されます。
これは、検証(ユーザーが存在するかどうかの確認など)またはそのユーザーまたはアイテムに関する重要な情報の取得に使用できます。
次のURLを検討してください。
http://localhost:8080/api/users/sammy
このURLには、 users
と :name
(Sammy
).
再訪 server.js
コードエディタを使用して、次のコード行を追加して、 name
:
// ...
app.param('name', function(req, res, next, name) {
const modified = name.toUpperCase();
req.name = modified;
next();
});
// routes will go here
// ...
app.get('/api/users/:name', function(req, res) {
res.send('Hello ' + req.name + '!');
});
app.listen(port);
console.log('Server started at http://localhost:' + port);
サーバーが稼働している状態で、URLを使用します http://localhost:8080/api/users/sammy
WebブラウザまたはPostmanのいずれかで。
サーバーは次のように応答します。
OutputHello SAMMY!
あなたはこれを使うことができます param
検証用のミドルウェアであり、渡された情報が有効で正しい形式であることを確認します。
次に、情報をリクエストに保存します(req
)他のルートがアクセスできるようにします。
ステップ5–使用 req.body
POSTパラメータを使用
express.json()
と express.urlencoded()
JSONエンコードおよびURLエンコードの本文をサポートする組み込みのミドルウェア関数です。
開ける server.js
コードエディタを使用して、次のコード行を追加します。
const express = require('express');
const app = express();
const port = process.env.PORT || 8080;
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
// ...
次に、追加します app.post
と req.body.id
, req.body.token
、 と req.body.geo
:
// ...
// routes will go here
// ...
app.post('/api/users', function(req, res) {
const user_id = req.body.id;
const token = req.body.token;
const geo = req.body.geo;
res.send({
'user_id': user_id,
'token': token,
'geo': geo
});
});
app.listen(port);
console.log('Server started at http://localhost:' + port);
サーバーが稼働している状態で、Postmanを使用してPOSTリクエストを生成します。
注:リクエストのためにPostmanインターフェースをナビゲートするための支援が必要な場合は、公式ドキュメントを参照してください。
リクエストタイプをに設定します POST
およびリクエストURL http://localhost:8080/api/users
. 次に設定します Body
に x-www-form-urlencoded
.
次に、次の値を指定します。
鍵 | 価値 |
---|---|
id | 4 |
トークン | sdfa3 |
ジオ | 我ら |
応答を送信した後、サーバーは次のように応答します user_id
, token
、 と geo
値。
結論
この記事では、Expressを使用してリクエストからURLパラメーターとPOSTパラメーターを取得する方法を学習しました。 これはで達成されました req.query
, req.params
、 と req.body
.
Express4.0ルーターの使用方法およびExpressでHTMLファイルを配信する方法で学習を続けてください。