CNode

connect-mongo和connect-redis分别有啥区别?

问答
Yyiranrucianjing发布于11 年前最后回复11 年前4 回复5727 浏览0 收藏

各自的作用和区别,求解。

查看回复

回复 (4)

A
albin3#1·11 年前

他们都是为 express-session 写的扩展… express-session 的 store 参数可以传入一个 session store 实例。

这个实例必须是一个EventEmitter,还必须要有store.destroy(sid, callback)store.get(sid, callback)store.set(sid, session, callback)方法。另外有一些推荐实现的方法… connect-mongo和connect-redis都是实现了上述方法的实例,更多实例还有这些

这些实例的用处是: 将session存储在对应的存储介质中。store.get(sid, callback)是取,store.set(sid, session, callback)是存,不同的是connect-mongo把session存在了mongodb中,connect-redis把session存在了redis中。我们也可以增加一个connect-memcached把session存在memcached中…

把session存在其他介质中可以让session稳定、持久化一些。默认express-session把session存在内存里,程序崩溃session就丢失了。。

===========分割线=============

我写过一个没有用 express-session 的 redis-session 中间件,蛋疼地造了一个轮子……

https://github.com/albin3/express-redis-session

Y
yiranrucianjing#2·11 年前

app.use(expressSession({ secret : 'SECRET', cookie : {maxAge: 60601000}, store : new mongoStore({ db : mongoose.connection.db }) }));

MongoError: cannot establish topology capabilities as driver is still in process of connecting

Y
yiranrucianjing#3·11 年前

求解

Y
yiranrucianjing#4·11 年前

app.use(expressSession({ secret : 'SECRET’, cookie : {maxAge: 60601000}, store : new mongoStore({ db : 'microblog' // 换成字符串就好了.. }) }));

参与回复
登录后即可参与回复。登录