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