在使用 Express.js 进行服务器端开发时,我们经常需要掌握 Request 对象的属性和方法。Request 对象是客户端向服务器端发送请求时,服务器端接收到的内容对象。
本文将详细解释 Express.js Request 对象的属性和方法,以及它们的使用方法和注意事项。
请求体属性
Request 对象的请求体属性包含了客户端传输给服务器端的数据。常见的请求体属性有以下四个:
1. req.body
req.body
是一个包含 POST 请求参数的对象,其中的属性对应于 POST 请求的参数名称。例如,如果客户端向服务器端发送了一个 POST 请求,请求参数为 username
和 password
,则可以通过以下获得其值:
const username = req.body.username const password = req.body.password
2. req.params
req.params
是一个包含路由参数的对象。例如,在以下路由中,id
是一个参数:
app.get("/users/:id", (req, res) => { const id = req.params.id })
3. req.query
req.query
是一个包含在查询字符串中的参数的对象。例如,在以下路由中,name
和 age
是查询字符串参数:
app.get("/users", (req, res) => { const name = req.query.name const age = req.query.age })
4. req.cookies
req.cookies
是一个包含客户端传递的 Cookie 的对象。
请求体方法
Request 对象还提供了一些有用的方法,以便我们对请求体进行操作。
1. req.is()
req.is()
方法用于检查请求体的内容是否是某个 MIME 类型,通常用于检查上传文件的类型。例如:
-- -------------------- ---- ------- ------------------- ----- ---- -- - -- ------------------- - -- ---- - ---- -- ------------------ - -- ---- - ---- - -- ------ - --
2. req.get()
req.get()
方法用于获取请求头的内容。例如:
app.get("/", (req, res) => { const userAgent = req.get("user-agent") })
3. req.accepts()
req.accepts()
方法用于获取客户端接受的 MIME 类型。例如,以下代码将检查客户端是否能够接受 JSON 格式的数据:
app.get("/", (req, res) => { if (req.accepts("json")) { res.json({ message: "Hello World" }) } })
其他属性和方法
1. req.ip
req.ip
属性返回客户端的 IP 地址。
2. req.protocol
req.protocol
属性返回请求协议的名称,通常是 "http" 或 "https"。
3. req.path
req.path
属性返回请求的路径部分。
4. req.hostname
req.hostname
属性返回客户端请求的主机名。
5. req.xhr
req.xhr
属性返回一个布尔值,表示当前请求是否由 Ajax 发起。
6. req.get()
除了获取请求头的内容之外,req.get()
方法还可以用于检查请求头是否存在。例如:
if (req.get("Accept-Encoding").includes("gzip")) { // 表示客户端支持压缩 }
总结
Express.js Request 对象提供了许多能够操作请求体的属性和方法,可以帮助我们更好地处理客户端发起的请求。本文中介绍了常见的请求体属性和方法,并提供了示例代码,希望对你学习和理解 Express.js 有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6470885c968c7c53b0eaabac