node express 和cookie-parser中的cookie使用

node.js中cookie的设置和获取:通过设置响应头来设置cookie,通过req.headers.cookie来获取cookie

var http = require('http');
var querystring = require("querystring");
var server = http.createServer(function(req, res){
	res.writeHeader(200,{
		'Set-Cookie' : 'myCookie = test',
		'Content-Type' : 'text/plain'
	});
//node.js中res对象下没有cookie(),res.cookie('testName', 'testValue');这样写会报错
	console.log(req.headers.cookie);//不能使用req.cookie
	res.end('hello world!');
});
server.listen(8080, '127.0.0.1');
console.log('Server running on port 8080.');

express中,只是给res对象添加了一个cookie()方法,用来设置cookie,获取cookie的方式和node.js相同
app.get("/",function(req,res){
	res.cookie('testName', 'testValue');
//	console.log(req.cookie);//undefined
    console.log(req.headers.cookie);//__guid=96992031.1518789250787072500.1511685488125.594; myCookie=test; testName=testValue; monitor_count=34
    res.send("你好");
});
app.listen(3000);
第一次访问http://127.0.0.1:3000/,响应头中有设置的cookie信息,请求头中没有设置的cookie信息


刷新页面后:请求头中出现了设置的cookie


cookie-parser中,只是给req对象添加了cookies属性,设置cookie和express中相同:

var express = require("express");
var cookieParser = require("cookie-parser");
var app = express();
app.use(cookieParser());
app.get("/",function(req,res){
	res.cookie('username', 'Jack');
        res.send("你好");
});

app.listen(3000);
console.log(req.cookies.username);//Jack

session:

express-session中session的设置和获取都在req对象中:

var express = require("express");
var app = express();
var session = require("express-session");

app.use(session({
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: true
}));

app.get("/",function(req,res){
	if(req.session.login == "1"){
		res.send("欢迎" + req.session.username);
	}else{
		res.send("没有成功登陆");
	}
});

app.get("/login",function(req,res){
	req.session.login = "1";	//设置这个session
	req.session.username = "考拉";
	res.send("你已经成功登陆");
});

app.listen(3000);


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值