Node.js 如何获取当前在Node/Express中设置的HTTP响应头列表?

Node.js 如何获取当前在Node/Express中设置的HTTP响应头列表?,node.js,express,http-headers,Node.js,Express,Http Headers,据我所知,当您在node/express或其他任何程序中构建http响应时,该过程主要由两个非连续步骤组成:定义头和构造主体。标头包括集合Cookie标头。在Express中,响应对象可使用以下方法设置标题: res.append(); // To append/create headers res.cookie(); // A convenience method to append set-cookie headers. 由于报头只是缓冲的,在发送响应之前不会实际发送,因此是否有任何方法或

据我所知,当您在node/express或其他任何程序中构建http响应时,该过程主要由两个非连续步骤组成:定义头和构造主体。标头包括集合Cookie标头。在Express中,响应对象可使用以下方法设置标题:

res.append(); // To append/create headers
res.cookie(); // A convenience method to append set-cookie headers.
由于报头只是缓冲的,在发送响应之前不会实际发送,因此是否有任何方法或机制来获取当前的报头列表以及它们的值,例如:

 headers = res.getHeaders(); //Returns an object with headers and values
 headers = res.getHeaders('Set-Cookie'); // To get only select headers
试一试


我已经设法使用
response.getHeaders()
和头上的
来检查发送的内容(包括cookie)。大概是这样的:

import express from 'express'
import onHeaders from 'on-headers'

const router = express.Router()

function responseDebugger() {
  console.log(JSON.stringify(this.getHeaders()))
}

router.post('/', (req, res, next) => {
  onHeaders(res, responseDebugger)

  res.json({})
})

export default router

适用于32位NodeJS v6.9.2。请注意,这不是一个公共API。依赖于此编写的任何东西都应该有一个自动单元测试。。查看下面的解决方案。^这有助于在几个小时的努力后从响应对象读取Cookie^
import express from 'express'
import onHeaders from 'on-headers'

const router = express.Router()

function responseDebugger() {
  console.log(JSON.stringify(this.getHeaders()))
}

router.post('/', (req, res, next) => {
  onHeaders(res, responseDebugger)

  res.json({})
})

export default router