序章

多くの場合、 Express を使用してアプリケーションを構築する場合、ユーザーから情報を取得する必要があります。 最も一般的な方法の2つは、URLパラメーターとPOSTパラメーターです。

この記事では、Expressを使用してリクエストからURLパラメーターとPOSTパラメーターを取得する方法を学習します。

前提条件

このチュートリアルを完了するには、次のものが必要です。

注:以前は、このチュートリアルでは req.param. これはv4.11.0で非推奨になりました。 このチュートリアルでは、インストールも推奨しています body-parser. v4.16.0以降、これは不要になりました。

このチュートリアルは、Nodev15.4.0で検証されました。 npm v7.10.0、および express v4.17.1。

ステップ1-プロジェクトの設定

まず、ターミナルウィンドウを開き、新しいプロジェクトディレクトリを作成します。

  1. mkdir express-params-example

次に、新しく作成されたディレクトリに移動します。

  1. cd express-params-example

この時点で、新しいnpmプロジェクトを初期化できます。

  1. npm init -y

次に、をインストールする必要があります express パッケージ:

  1. npm install express@4.17.1

この時点で、Expressを使用する準備ができた新しいプロジェクトができました。

新しいを作成します server.js ファイルを作成し、コードエディタで開きます。

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

ターミナルウィンドウに戻り、アプリケーションを実行します。

  1. 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:

server.js
// ...

// 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:

server.js
// ...

// 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:

server.js
// ...

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のいずれかで。

サーバーは次のように応答します。

Output
Hello SAMMY!

あなたはこれを使うことができます param 検証用のミドルウェアであり、渡された情報が有効で正しい形式であることを確認します。

次に、情報をリクエストに保存します(req)他のルートがアクセスできるようにします。

ステップ5–使用 req.body POSTパラメータを使用

express.json()express.urlencoded() JSONエンコードおよびURLエンコードの本文をサポートする組み込みのミドルウェア関数です。

開ける server.js コードエディタを使用して、次のコード行を追加します。

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.postreq.body.id, req.body.token、 と req.body.geo:

server.js
// ...

// 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. 次に設定します Bodyx-www-form-urlencoded.

次に、次の値を指定します。

価値
id 4
トークン sdfa3
ジオ 我ら

応答を送信した後、サーバーは次のように応答します user_id, token、 と geo 値。

結論

この記事では、Expressを使用してリクエストからURLパラメーターとPOSTパラメーターを取得する方法を学習しました。 これはで達成されました req.query, req.params、 と req.body.

Express4.0ルーターの使用方法およびExpressでHTMLファイルを配信する方法で学習を続けてください。