Express 中 res 对象的常用属性和方法有哪些?

· 约 5 分钟读完 · 第 113 / 120 章

推荐答案

在 Express 中,res 对象是 HTTP 响应的表示,它包含了许多常用的属性和方法,用于控制响应的行为和内容。以下是一些常用的属性和方法:

常用属性

  • res.statusCode: 设置或获取响应的 HTTP 状态码。
  • res.headersSent: 只读属性,表示响应头是否已经发送。
  • res.locals: 一个对象,用于存储局部变量,这些变量可以在视图渲染时使用。

常用方法

  • res.status(code): 设置响应的 HTTP 状态码。
  • res.send(body): 发送 HTTP 响应,body 可以是字符串、Buffer、对象或数组。
  • res.json(body): 发送 JSON 格式的响应。
  • res.sendStatus(statusCode): 设置响应状态码并发送对应的状态消息。
  • res.redirect([status,] path): 重定向请求到指定的路径,可选状态码。
  • res.render(view [, locals] [, callback]): 渲染视图模板并发送 HTML 响应。
  • res.set(field [, value]): 设置响应头字段。
  • res.get(field): 获取响应头字段的值。
  • res.cookie(name, value [, options]): 设置 cookie。
  • res.clearCookie(name [, options]): 清除指定的 cookie。
  • res.end([data] [, encoding]): 结束响应过程,可选发送数据。
  • res.type(type): 设置响应的 Content-Type。

本题详细解读

res 对象是 Express 框架中用于处理 HTTP 响应的核心对象之一。它提供了丰富的属性和方法,使得开发者能够灵活地控制响应的各个方面。

res.statusCode

res.statusCode 属性用于设置或获取响应的 HTTP 状态码。例如,res.statusCode = 404 会将响应的状态码设置为 404。

res.headersSent

res.headersSent 是一个只读属性,用于检查响应头是否已经发送。如果响应头已经发送,则无法再修改响应头。

res.locals

res.locals 是一个对象,用于存储局部变量。这些变量可以在视图渲染时使用,通常用于传递数据到模板引擎。

res.status(code)

res.status(code) 方法用于设置响应的 HTTP 状态码。例如,res.status(200).send('OK') 会将状态码设置为 200 并发送 "OK" 作为响应体。

res.send(body)

res.send(body) 方法用于发送 HTTP 响应。body 可以是字符串、Buffer、对象或数组。Express 会根据 body 的类型自动设置合适的 Content-Type。

res.json(body)

res.json(body) 方法用于发送 JSON 格式的响应。它会自动将 body 转换为 JSON 字符串,并设置 Content-Type 为 application/json。

res.sendStatus(statusCode)

res.sendStatus(statusCode) 方法用于设置响应状态码并发送对应的状态消息。例如,res.sendStatus(404) 会发送状态码 404 和 "Not Found" 消息。

res.redirect([status,] path)

res.redirect([status,] path) 方法用于重定向请求到指定的路径。可选的状态码默认为 302。例如,res.redirect('/new-path') 会将请求重定向到 /new-path。

res.render(view [, locals] [, callback])

res.render(view [, locals] [, callback]) 方法用于渲染视图模板并发送 HTML 响应。view 是模板文件的路径,locals 是传递给模板的数据。

res.set(field [, value])

res.set(field [, value]) 方法用于设置响应头字段。例如,res.set('Content-Type', 'text/plain') 会设置 Content-Type 为 text/plain。

res.get(field)

res.get(field) 方法用于获取响应头字段的值。例如,res.get('Content-Type') 会返回当前响应的 Content-Type。

res.cookie(name, value [, options])

res.cookie(name, value [, options]) 方法用于设置 cookie。name 是 cookie 的名称,value 是 cookie 的值,options 是可选参数,用于设置 cookie 的属性。

res.clearCookie(name [, options])

res.clearCookie(name [, options]) 方法用于清除指定的 cookie。name 是要清除的 cookie 的名称,options 是可选参数,用于指定 cookie 的属性。

res.end([data] [, encoding])

res.end([data] [, encoding]) 方法用于结束响应过程。可选的数据和编码参数可以用于发送最后的响应数据。

res.type(type)

res.type(type) 方法用于设置响应的 Content-Type。例如,res.type('json') 会将 Content-Type 设置为 application/json。

这些属性和方法使得 res 对象成为 Express 中处理 HTTP 响应的强大工具,开发者可以根据需要灵活使用它们来控制响应的行为和内容。