2016-09-08 2 views
2

server push with cloudflare을 설정하려고하지만 복수 파일을 푸시하기 위해 여러 개의 link 헤더 필드가 필요합니다. 그러나 node.js에 동일한 키가있는 여러 헤더 필드를 포함하는 문서화 된 방법을 찾을 수 없습니다. 나는 배열을 제공하려했지만, 그것들을 하나의 헤더 필드에 대한 값으로 연결했다.Node.js에 동일한 키가있는 여러 http 헤더 필드를 설정하려면 어떻게해야합니까?

답변

3

당신은 res.header('HeaderName', arrayOfValues)에 값의 배열을 전달

을 표현한다. 다음은 중복 응답 헤더를 보여주는 작업 예제 및 cURL 출력입니다. 이것은 직접적으로 문서화되지는 않았지만 제대로 작동합니다 ( [email protected]).

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

컬 -v 로컬 호스트 : 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 
+0

고마워, 나는 그것을 시도했다. 그러나 이상하게도 내 로컬 컴퓨터에서 헤더가'Link : Link1b, Link2b'와 같은 쉼표로 구분 된 값으로 나왔지만 아직 heroku 테스트 서버에서 동일한 서버를 실행했을 때 그들은 별개 링크 필드. 두 서버 모두 노드 5.2.0을 실행하므로이 이상한 동작을 일으키는 원인이 무엇인지 확신 할 수 없습니다. – TimE

+0

서로 다른 노드 버전 일 가능성이 큽니다. 나는 당신의 환경 세부 사항을 매우 조심스럽게 검사 할 것이다. –

+0

그래, 내 생각도 처음이야.하지만 그건 그렇지 않아. 내 브라우저 동기화 프록시로 밝혀졌습니다. 나는 그것이 사용하는 프록시 메소드가 헤더 필드를 다시 해석한다고 생각하고있다. 도와 주셔서 감사합니다! – TimE