node.js在res.writeHeads()函数内使用一个variables

哎哟在外面 我有以下问题:

我用这个

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 , 

有没有另外一种方法来做到这一点?

使用一个辅助函数来连接你的头对象,就像

 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" }));