【发布时间】:2017-01-16 19:15:21
【问题描述】:
我正在尝试设置server push with cloudflare,但它们需要多个link 标头字段来推送多个文件。但是,我找不到任何记录在案的方法来在 node.js 中包含具有相同键的多个标头字段。我尝试提供一个数组,但这只是将它们连接在一起作为单个标题字段的值。
【问题讨论】:
标签: node.js http express http-headers server-push
我正在尝试设置server push with cloudflare,但它们需要多个link 标头字段来推送多个文件。但是,我找不到任何记录在案的方法来在 node.js 中包含具有相同键的多个标头字段。我尝试提供一个数组,但这只是将它们连接在一起作为单个标题字段的值。
【问题讨论】:
标签: node.js http express http-headers server-push
您将一组值传递给res.header('HeaderName', arrayOfValues)。这是一个显示重复响应标头的工作示例和 cURL 输出。这没有直接记录,但确实有效 (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
使用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
【讨论】:
Link: Link1b, Link2b,但是当我在 heroku 测试服务器上运行同一服务器时,它们出现了作为单独的Link 字段。两台服务器都运行节点 5.2.0,所以我不确定是什么导致了这种奇怪的行为。
res.header() 是 res.set() 的别名