Nodejs express操作cookie和session

express使用cookiparser来解析cookie

直接使用req.cooikes.name 就可以取得客户端发来的cookie

cookie:

var express = require('express');
// 可以直接使用req.cookies.cname来访问cookie
var cookie = require('cookie-parser');
// 创建app对象
var app = express();
app.use(cookie())
// 设置cookie
app.get('/setc',function(req,res){
    res.cookie('resc', '设置到cookie里的值', { expires: new Date(Date.now() + 900000), httpOnly: true });
    res.end('cookies set ok')
})

// 取得cookie
app.get('/getc',function(req,res){
    console.log('取得的cookie:'+req.cookies.resc)
    res.end('cookies get ok')
})

// 3000端口监听http请求
app.listen(3000);

对于session,使用express-session中间件,默认是放在内存里的,可以通过其他方法存储
可以直接使用req.session.sname取得和设置session
// session功能
var session = require('express-session');
// secret是设置在cookie里的sessionkey
app.use(session({'secret':'WBLOG'})) 
// 设置session
app.get('/login',function(req,res){
    req.session.user = {
        'name':req.query.name,
        'pass':req.query.pass,
        'avatar':req.query.avatar
    }
    res.end('session is OK.');
})
也可以把session存储在mongodb里,需要使用到connect-mongo包
connect-mongo依赖session
var MongoStore  = require('connect-mongo')(session);
app.use(session({
    'secret':'WBLOG',
    'store':new MongoStore({
        'db':'esession',
        'host': 'localhost',
        'port': 27017,	
	'collection':'sessions',// 存在哪个集合里,默认为sessions	
	'ttl':10, // session过期时间
	'autoRemove': 'native',// mongo2.2+自动移除过期的sessiondisable为禁用
	'autoRemoveInterval': 10, //移除过期session间隔时间,默认为10分钟
	'touchAfter': 24 * 3600 //同步session间隔,默认每次请求都会同步到数据库
	})
})) 
// secret是设置在cookie里的sessionkey
// store用来指定session存储位置
这样session就会被存储在本机的esession数据库的sessions集合中。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值