响应 Response

发送响应头和数据的实用程序

appendResponseHeader(event, name, value)

按名称附加响应标头。

示例:

ts
export default defineEventHandler((event) => {
  appendResponseHeader(event, 'content-type', 'text/html')
})

appendResponseHeaders(event, headers)

附加响应标头。

示例:

ts
export default defineEventHandler((event) => {
  appendResponseHeaders(event, {
    'content-type': 'text/html',
    'cache-control': 'no-cache',
  })
})

clearResponseHeaders(event, headerNames?)

删除所有响应标头,或仅删除 headerNames 数组中指定的响应标头。

示例:

ts
export default defineEventHandler((event) => {
  clearResponseHeaders(event, ['content-type', 'cache-control']) // Remove content-type and cache-control headers
})

defaultContentType(event, type?)

设置响应状态代码和消息。

getResponseHeader(event, name)

getResponseHeaders(event)

获取响应标头对象。

示例:

ts
export default defineEventHandler((event) => {
  const headers = getResponseHeaders(event)
})

getResponseStatus(event)

获取当前响应状态代码。

示例:

ts
export default defineEventHandler((event) => {
  const status = getResponseStatus(event)
  return `Status: ${status}`
})

getResponseStatusText(event)

获取当前响应状态消息。

示例:

ts
export default defineEventHandler((event) => {
  const statusText = getResponseStatusText(event)
  return `Status: ${statusText}`
})

iterable(iterable)

迭代块源并按顺序返回每个块。支持混合异步工作和发出块。

每个块必须是字符串或缓冲区。

对于生成器(产生)函数,返回值与产生的值相同。

示例:

ts
return iterable(async function* work() {
  // Open document body
  yield '<!DOCTYPE html>\n<html><body><h1>Executing...</h1><ol>\n'
  // Do work ...
  for (let i = 0; i < 1000) {
    await delay(1000)
    // Report progress
    yield `<li>Completed job #`
    yield i
    yield `</li>\n`
  }
  // Close out the report
  return `</ol></body></html>`
})
async function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms))
}

noContent(event, code?)

用空的有效载荷进行响应。

示例:

ts
export default defineEventHandler((event) => {
  return noContent(event)
})

redirect(event, location, code)

向客户端发送重定向响应。

它将“location”标头添加到响应中,并默认将状态代码设置为 302。

在正文中,它发送一个带有元刷新标记的简单 HTML 页面,以便在标头被忽略的情况下重定向客户端。

示例:

ts
export default defineEventHandler((event) => {
  return redirect(event, 'https://example.com')
})

示例:

ts
export default defineEventHandler((event) => {
  return redirect(event, 'https://example.com', 301) // Permanent redirect
})

removeResponseHeader(event, name)

按名称删除响应标头。

示例:

ts
export default defineEventHandler((event) => {
  removeResponseHeader(event, 'content-type') // Remove content-type header
})

setResponseHeader(event, name, value)

按名称设置响应标头。

示例:

ts
export default defineEventHandler((event) => {
  setResponseHeader(event, 'content-type', 'text/html')
})

setResponseHeaders(event, headers)

设置响应标头。

示例:

ts
export default defineEventHandler((event) => {
  setResponseHeaders(event, {
    'content-type': 'text/html',
    'cache-control': 'no-cache',
  })
})

setResponseStatus(event, code?, text?)

设置响应状态代码和消息。

示例:

ts
export default defineEventHandler((event) => {
  setResponseStatus(event, 404, 'Not Found')
  return 'Not Found'
})

writeEarlyHints(event, hints)

向客户端写入“HTTP/1.1 103 Early Hints”。