如何在 Node.js 中使用相同的键设置多个 http header 字段?

How do I set multiple http header fields with the same key in Node.js?

我正在尝试设置 server push with cloudflare,但它们需要多个 link header 字段来推送多个文件。但是,我找不到任何记录的方法来包含 node.js 中具有相同键的多个 header 字段。我尝试提供一个数组,但这只是将它们连接在一起作为单个 header 字段的值。

快递

您将一组值传递给 res.header('HeaderName', arrayOfValues)。这是一个工作示例和 cURL 输出,显示了重复的响应 headers。这没有直接记录,但它确实有效 (express@4.14.0)。

const express = require('express')
const app = express()
app.get('/', (req, res, next) => {
  res.header('Link', ['Link1', 'Link2'])
  res.send()
})
app.listen(3000)

curl -v localhost:3000 输出:

< HTTP/1.1 200 OK
< X-Powered-By: Express
< Link: Link1
< Link: Link2
< Date: Fri, 09 Sep 2016 01:44:22 GMT
< Connection: keep-alive
< Content-Length: 0

节点核心http

使用res.setHeader(name, arrayOfValues)

const http = require('http')

const server = http.createServer(function (req, res) {
  res.setHeader('Link', ['Link1b', 'Link2b'])
  res.end()
})
server.listen(3000)

卷曲输出:

< HTTP/1.1 200 OK
< Link: Link1b
< Link: Link2b
< Date: Fri, 09 Sep 2016 01:52:53 GMT
< Connection: keep-alive
< Content-Length: 0