express中的会话存储方式

会话存储须要用的express-session包node

app.use(require('express-sessiion')())

express-session接收带有以下选项的配置对象:redis

key;存放惟一会话标识的cookie名称,默认为connect.sid,mongodb

store 会话存储的实例,默认为一个MemoryStore的实例express

cookie 会话cookie的cookie设置(path,domain,secure等)服务器

会话设置以后使用起来很是简单,就是使用req请求对象的session属性,注意,响应对象上是没有session属性的cookie

req.session.userName = 'kevin' //设置session

delete req.sessiion.userName 删除session

一般,生产环境咱们不会用服务器内存来存储session数据,由于一旦服务器重启session就没了,也不适合作集群扩展。session

能够用mongodb或redis来存储会话数据app

1,mongodb存储会话,须要用到mongoose-sessiondom

var express = require('express');

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/db');

var app = express();

app.use(require('express-session')({
    key: 'session',
    secret: 'SUPER SECRET SECRET',
    store: require('mongoose-session')(mongoose)
}));

mongodb存储会话有不少插件可用,另一个很好的插件connect-mongo-storemongoose

var express = require('express');
var app = express();
var MongoStore = require('connect-mongo-store')(express)

app.use(express.session({store: MongoStore, secret: 'keyboard cat'}))

or

app.use(require(''express-session")({store:MongoStore,secret:''xxxx}))

 

2,redis存储会话

var session = require('express-session');
var RedisStore = require('connect-redis')(session);
 
app.use(session({
    store: new RedisStore(options),
    secret: 'keyboard cat'
}));

options对象主要包括如下几个选项

client:redis客户端,经过安装node_redis来建立redis客户端对象

host redis服务器主机名

port redis服务器端口

url redis服务器url

相关文章
相关标签/搜索