序章
多くの場合、 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ファイルを配信する方法で学習を続けてください。