Express、リクエストパラメータ

すべてのリクエストオブジェクトのプロパティとその使用方法への便利なリファレンス

リクエストパラメータ

RequestオブジェクトがすべてのHTTPリクエスト情報を保持する方法について説明しました。

使用する可能性のある主なプロパティは次のとおりです。

プロパティ 説明
.app Expressアプリオブジェクトへの参照を保持します
.baseUrl アプリが応答するベースパス
。体 リクエスト本文に送信されたデータが含まれます(アクセスする前に手動で解析して入力する必要があります)
。クッキー リクエストによって送信されたCookieが含まれています(cookie-parserミドルウェア)
.hostname で定義されているホスト名ホストHTTPヘッダー
.ip クライアントIP
。方法 使用されるHTTPメソッド
.params パラメータという名前のルート
。道 URLパス
。プロトコル リクエストプロトコル
.query リクエストで使用されるすべてのクエリ文字列を含むオブジェクト
.secure リクエストが安全な場合はtrue(HTTPSを使用)
.signedCookies リクエストによって送信された署名付きCookieが含まれています(cookie-parserミドルウェア)
.xhr リクエストがXMLHttpRequest

Expressを使用してGETクエリ文字列パラメーターを取得する方法

クエリ文字列は、URLパスの後に続く部分で、疑問符で始まります。?

例:

?name=flavio

複数のクエリパラメータは、を使用して追加できます&

?name=flavio&age=35

Expressでこれらのクエリ文字列値を取得するにはどうすればよいですか?

Expressを使用すると、Request.query私たちのオブジェクト:

const express = require('express')
const app = express()

app.get(’/’, (req, res) => { console.log(req.query) })

app.listen(8080)

このオブジェクトには、各クエリパラメータのプロパティが入力されます。

クエリパラメータがない場合、それは空のオブジェクトです。

これにより、for…inループを使用して簡単に反復できます。

for (const key in req.query) {
  console.log(key, req.query[key])
}

これにより、クエリプロパティキーと値が出力されます。

単一のプロパティにもアクセスできます。

req.query.name //flavio
req.query.age //35

Expressを使用してPOSTクエリ文字列パラメータを取得する方法

POSTクエリパラメータは、フォームなどのHTTPクライアントによって、またはデータを送信するPOSTリクエストを実行するときに送信されます。

このデータにどのようにアクセスできますか?

データが次のように送信された場合JSON、を使用してContent-Type: application/json、を使用しますexpress.json()ミドルウェア:

const express = require('express')
const app = express()

app.use(express.json())

データがを使用して送信された場合Content-Type: application/x-www-form-urlencoded、を使用する必要がありますexpress.urlencoded()ミドルウェア:

const express = require('express')
const app = express()

app.use(express.urlencoded({ extended: true }))

どちらの場合も、からデータを参照することでデータにアクセスできますRequest.body

app.post('/form', (req, res) => {
  const name = req.body.name
})

注:古いExpressバージョンでは、body-parserPOSTデータを処理するモジュール。 Express 4.16(2017年9月にリリース)以降のバージョンでは、これは当てはまりません。

私の無料ダウンロードExpress.jsハンドブック


より明確なチュートリアル: