推荐答案
在 Express 中,req
和 res
是两个非常重要的对象,分别代表 HTTP 请求和 HTTP 响应。
req
对象:req
是request
的缩写,表示 HTTP 请求。它包含了客户端发送的所有信息,如请求参数、请求头、请求体等。通过req
对象,你可以访问请求的 URL、查询字符串、路径参数、请求方法(GET、POST 等)、请求头、请求体等。res
对象:res
是response
的缩写,表示 HTTP 响应。它用于向客户端发送响应数据。通过res
对象,你可以设置响应状态码、响应头、发送响应体等。常见的操作包括发送 JSON 数据、重定向、设置 Cookie 等。
本题详细解读
req
对象的常用属性和方法
req.params
:获取路由中的路径参数。例如,对于路由/users/:id
,req.params.id
可以获取到id
的值。req.query
:获取 URL 中的查询参数。例如,对于 URL/users?name=John
,req.query.name
将返回"John"
。req.body
:获取请求体中的数据,通常用于 POST 或 PUT 请求。需要配合中间件如express.json()
或express.urlencoded()
使用。req.headers
:获取请求头信息。req.method
:获取请求的 HTTP 方法(如 GET、POST 等)。
res
对象的常用属性和方法
res.status(code)
:设置响应的状态码。例如,res.status(200)
表示成功。res.send(body)
:发送响应体。可以发送字符串、对象、数组等。res.json(body)
:发送 JSON 格式的响应体。res.redirect(status, url)
:重定向到指定的 URL。例如,res.redirect('/home')
将客户端重定向到/home
。res.setHeader(name, value)
:设置响应头。例如,res.setHeader('Content-Type', 'application/json')
。res.cookie(name, value, options)
:设置 Cookie。
示例代码
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ------------------------ -- ---- ---- ------ --------------------- ----- ---- -- - ----- ------ - -------------- -- ------ ----- --------- - --------------- -- ------ ---------- ------- --------- --- -- -- ---- -- --- ------------------ ----- ---- -- - ----- -------- - --------- -- --------- -------------------------- ---------- -- --------- --- ---------------- -- -- - ------------------- -- ------- -- ---- ------- ---
在这个示例中,req
对象用于获取请求的路径参数、查询参数和请求体数据,而 res
对象用于发送响应数据和设置状态码。