2010-12-28 19 views
10

Şimdi örnek olarak, bir JavaScript nesnesi olarak kısmen anahtar/değerlere sahip bir yanıtı alıyorum:Okuma gelen HTTP başlıklarını

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

Ben kolayca okunabilir ve durum mesajını giriş yapabilirsiniz (Ben bu özel durumda gerekir) içerik kodlamasını günlüğü, hatalar üzerinde çalışırken headers.status ama: I get varsayalım duyuyorum nasıl

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

/okuma/o içerik kodlama değer log ?

Greets,

m0rph3v5

cevap

20

JavaScript da headers uygun bir nesne ise, headers['content-encoding'] kullanabilmesi özelliklerine atıfta için köşeli ayraç notasyonu destekler.

+0

Teşekkürler bir demet, aptalca bu şekilde denedim başlıkları başlıklarıydı. ['Içerik-kodlama'] düşünemiyorum iki kaza ile birleştiriyordum. :) – M0rph3v5

+1

Her zaman bir ilk kez vardır :-) İyi şanslar. –

4

JavaScript özelliklerinin bildiğiniz gibi adları var. İsim yasal bir tanımlayıcı olduğunda ve kodu yazarken istediğiniz gerçek ismi biliyorsanız, noktalı notasyon ile kullanabilirsiniz.

var foo = headers.foo; 

adı yasal bir kimliği değil, ya da çalışma zamanında yukarı aradığınız adını belirlemek istiyorsanız, bir dize kullanabilirsiniz:

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

veya

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

hatta

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

olarak Gördüğünüz gibi, literal dizesi olmak zorunda değilsiniz. Bu özellik adı bir işlev argümanı veya benzeri olarak kabul etmek zorunda olan genel amaçlı işlevler için çok kullanışlıdır.

Özellik adlarının büyük/küçük harfe duyarlı olduğunu unutmayın.

4

Çok iyi express çerçevesini yüklemelisiniz. Node.js web geliştirmeyi gerçekten basitleştiriyorum.

Bu pasajı size başlıklarını ayarlamak ve çıkışı komut satırından başlıklarını

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 

günlük Curl okumayı gösterir

npm install express 

UÖM'ye kullanarak yükleyebilir üstbilgi, düğüm sunucusuna kıvrılarak gönder:

$ node mo.js 
3434 
İlgili konular