2010-12-28 8 views
10

이제 예를 들어, 나는 자바 스크립트 객체로 부분적으로 키/값이있는 응답을 받고 있어요 :읽기 들어오는 HTTP 헤더

status: '200 OK', 
'content-encoding': 'gzip' 

내가 쉽게 읽을 및 상태 메시지를 기록 할 수 있습니다 나는 (내가이 특정 상황에서 필요) 컨텐츠 인코딩을 기록 그것을 오류에 대한하려고 할 때 headers.status하지만 값 : 내가 얻을 생각입니다 어떻게

headers.'content-encoding' <- obviously the quotes it doesn't like 
headers.content-encoding <- obviously the '-' it doesn't like 

/읽기 /는 컨텐츠 인코딩 값의 로그 ?

접견,

m0rph3v5

답변

20

자바 스크립트는 headers 적절한 객체 인 경우, 당신은 headers['content-encoding']을 사용할 수 있도록 속성을 참조에 대한 대괄호 표기법을 지원합니다.

+0

감사합니다. 나는 그 방법으로 모든 것을 시도해봤을 정도로 어리 석었습니다. [ 'content-encoding'] 우연히 두 사람을 합치는 것을 생각하지 않았습니다. :) – M0rph3v5

+1

항상 처음입니다 :-) 행운을 빌어 요. –

4

JavaScript 속성에는 이름이 있습니다. 이름이 합법적 인 식별자이고 코드를 작성할 때 원하는 리터럴 이름을 알고 있으면 점으로 구분 된 표기법으로 사용할 수 있습니다.

var foo = headers.foo; 

이름이 유효한 식별자가 아니거나 당신이 런타임에서 찾고있는 이름을 확인하려는 경우, 당신은 문자열을 사용할 수 있습니다

var encoding = headers['content-encoding']; 

또는

var name = 'content-encoding'; 
var encoding = headers[name]; 

또는

var x = 'encoding'; 
var encoding = headers['content-' + x]; 

로 당신은 볼 수 있듯이 리터럴 문자열 일 필요는 없습니다. 이 함수는 함수 이름이나 그와 비슷한 속성 이름을 받아 들여야하는 범용 함수에 매우 편리합니다.

속성 이름은 대/소문자를 구분합니다.

4

매우 좋은 express 프레임 워크를 설치해야한다고 생각합니다. 나는 node.js webdevelopment를 단순화했다.

당신이 조각은 당신이 헤더를 설정하고 출력 명령 줄에서 헤더

var express = require('express'); 

var app = express.createServer(); 

app.get('/', function(req, res){ 
    console.log(req.header('a')); 
    res.header('time', 12345); 

    res.send('Hello World'); 
}); 

app.listen(3000); 

에게

$curl http://localhost:3000/ -H "a:3434" -v 
* About to connect() to localhost port 3000 (#0) 
* Trying ::1... Connection refused 
* Trying 127.0.0.1... connected 
* Connected to localhost (127.0.0.1) port 3000 (#0) 
> GET/HTTP/1.1 
> User-Agent: curl/7.21.2 (i686-pc-linux-gnu) libcurl/7.21.2 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18 
> Host: localhost:3000 
> Accept: */* 
> a:3434 
> 
< HTTP/1.1 200 OK 
< X-Powered-By: Express 
< time: 12345 
< Content-Type: text/html; charset=utf-8 
< Content-Length: 11 
< Date: Tue, 28 Dec 2010 13:58:41 GMT 
< X-Response-Time: 1ms 
< Connection: keep-alive 
< 
* Connection #0 to host localhost left intact 
* Closing connection #0 
Hello World 

로그를 컬을 읽는 방법을 보여줍니다

npm install express 

NPM을 사용하여 설치할 수있는 헤더가 컬을 통해 노드 서버에 전송 :