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信息

node express 和cookie-parser中的cookie使用_第1张图片

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

node express 和cookie-parser中的cookie使用_第2张图片

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


你可能感兴趣的:(Node.js)