Express,请求参数

方便参考所有请求对象属性以及如何使用它们

请求参数

我提到了Request对象如何保存所有HTTP请求信息。

这些是您可能会使用的主要属性:

财产 描述
。应用程序 拥有对Express应用程序对象的引用
.baseUrl 应用程序响应的基本路径
。身体 包含在请求正文中提交的数据(必须先对其进行手动分析和填充,然后才能访问它)
。饼干 包含请求发送的Cookie(需要cookie-parser中间件)
。主机名 主机名,如主机HTTP标头价值
.ip 客户端IP
。方法 使用的HTTP方法
.params 路线命名参数
。小路 URL路径
。协议 请求协议
。询问 包含请求中使用的所有查询字符串的对象
。安全的 如果请求是安全的(使用HTTPS),则为true
.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-parser处理POST数据的模块。 Express 4.16(于2017年9月发布)和更高版本不再是这种情况。

免费下载我的Express.js手册


更多速成教程: