node.js中如何向客户端发送COOKIE呢?
有以下两个方案:
1、使用response.writeHead,代码示例:
//设置过时时间为一分钟 javascript
var today = new Date(); var time = today.getTime() + 60*1000; var time2 = new Date(time); var timeObj = time2.toGMTString(); response.writeHead({ 'Set-Cookie':'myCookie="type=ninja", "language=javascript";path="/";Expires='+timeObj+';httpOnly=true' });
语法以下(具体每一个字段的解释,请看下文的“options字段含义”):
Set-Cookie:'
cookieName=cookieValue;
[expires=]
[;domain=]
[;path=]
[;secure=]
[;httpOnly=]
'
经过查看,COOKIE以下图所示:
缺点:使用response.writeHead只能发送一次头部,即只能调用一次,且不能与response.render共存,不然会报错 php
2、使用response.cookie,代码示例以下:
html
response.cookie('haha', 'name1=value1&name2=value2', {maxAge:10*1000, path:'/', httpOnly:true});
response.cookie('cookieName', 'name=value[name=value...]',[options]);
经过查看,COOKIE以下图所示:
java
参考资料:
一、http://nodejs.org/api/http.html#http_response_setheader_name_value
二、http://www.cnblogs.com/rubylouvre/archive/2012/08/19/2645644.html
三、http://expressjs.com/api.html#res.cookie
四、http://mao.li/node/node-js-handle-cookie/
node