使用Node.js设置HTTP标头Cookie

我想通过使用下面的方法在node.js中设置一些头Cookie

response.setHeader("Set-Cookie", "username=" + data.name); 

数据variables是一个json对象,它包含许多通过先前发送的ajax请求接收到的字段/值。 data.name字段肯定是填充的(以前的console.log(data.name)显示正确的值)。

但是,在浏览器中,一旦这个头文件与response.end()一起发送,它就会以下面的方式显示(在Chrome中,检查networking选项卡中的响应头文件时)

  Set-Cookie:username=undefined 

有没有人有一个想法如何正确地做到这一点?

我想要完成的是在整个会话中识别用户, 而不使用像express.js这样的任何第三方扩展。 我已经尝试使用session.js没有成功。

感谢任何想法。

虽然我知道你说你确定data.name是被定义的,但是你的代码看起来很简单,我在质疑它是否被实际定义。

而不是logging到控制台,尝试设置标头cookie与一些明确的检查:

 response.setHeader( "username=" + ( data ? data.hasOwnProperty( "name" ) ? data.name ? data.name : "name empty" : "name undefined" : "data undefined" ) ); 

这不会解决您的问题,但会帮助您了解data.name哪部分不能按预期工作。