Node.js 面试题
目录

请解释如何使用 Express 的 req 和 res 对象?它们分别代表什么?

· 约 3 分钟读完 · 第 271 / 377 章

推荐答案

在 Express 中,req 和 res 是两个非常重要的对象,分别代表 HTTP 请求和 HTTP 响应。

  • req 对象:req 是 request 的缩写,表示 HTTP 请求。它包含了客户端发送的所有信息,如请求参数、请求头、请求体等。通过 req 对象,你可以访问请求的 URL、查询字符串、路径参数、请求方法(GET、POST 等)、请求头、请求体等。

  • res 对象:res 是 response 的缩写,表示 HTTP 响应。它用于向客户端发送响应数据。通过 res 对象,你可以设置响应状态码、响应头、发送响应体等。常见的操作包括发送 JSON 数据、重定向、设置 Cookie 等。

本题详细解读

req 对象的常用属性和方法

  1. req.params:获取路由中的路径参数。例如,对于路由 /users/:id,req.params.id 可以获取到 id 的值。
  2. req.query:获取 URL 中的查询参数。例如,对于 URL /users?name=John,req.query.name 将返回 "John"。
  3. req.body:获取请求体中的数据,通常用于 POST 或 PUT 请求。需要配合中间件如 express.json() 或 express.urlencoded() 使用。
  4. req.headers:获取请求头信息。
  5. req.method:获取请求的 HTTP 方法(如 GET、POST 等)。

res 对象的常用属性和方法

  1. res.status(code):设置响应的状态码。例如,res.status(200) 表示成功。
  2. res.send(body):发送响应体。可以发送字符串、对象、数组等。
  3. res.json(body):发送 JSON 格式的响应体。
  4. res.redirect(status, url):重定向到指定的 URL。例如,res.redirect('/home') 将客户端重定向到 /home。
  5. res.setHeader(name, value):设置响应头。例如,res.setHeader('Content-Type', 'application/json')。
  6. res.cookie(name, value, options):设置 Cookie。

示例代码

在这个示例中,req 对象用于获取请求的路径参数、查询参数和请求体数据,而 res 对象用于发送响应数据和设置状态码。