2012-11-17 46 views
1

Heyo在那裏。我有以下問題:node.js在res.writeHeads()函數內使用變量

我用這個

res.writeHead(200, { 
    "Content-Length": template["stylecss"].length, 
    "Connection": "Close", 
    "X-XSS-Protection": "1; mode=block", 
    "Server": servername, 
    "Content-Type": "text/css" 
}); 

的響應頭寫入客戶端。

但是現在,我想要更改上面的代碼來服務預定義標題。像這樣:

var defresheads = {「X-Frame-Options」:「deny」,「X-Powered-By」:servername};

res.writeHead(200, { 
    defresheads, 
    "Content-Length": template["stylecss"].length, 
    "Connection": "Close", 
    "X-XSS-Protection": "1; mode=block", 
    "Server": servername, 
    "Content-Type": "text/css" 
}); 

現在,當我運行該腳本,它說以下內容:

/home/dontrm/dontrm.js:47 
      defresheads, 
        ^
SyntaxError: Unexpected token , 

是否有另一種方式做到這一點?

回答

1

使用輔助函數Concat的你的頭的對象,如

function jsonConcat(o1, o2) { 
    for (var key in o2) { 
     o1[key] = o2[key]; 
    } 
    return o1; 
} 

然後你就可以使用這個如下:

var defresheads = { "X-Frame-Options": "deny", "X-Powered-By": servername }; 
res.writeHead(200, jsonConcat(defresheads, { 
    "Content-Length": template["stylecss"].length, 
    "Connection": "Close", 
    "X-XSS-Protection": "1; mode=block", 
    "Server": servername, 
    "Content-Type": "text/css" 
}));