各自的作用和区别,求解。
他们都是为 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都是实现了上述方法的实例,更多实例还有这些。
store.destroy(sid, callback)
store.get(sid, callback)
store.set(sid, session, callback)
这些实例的用处是: 将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
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
求解
app.use(expressSession({ secret : 'SECRET’, cookie : {maxAge: 60601000}, store : new mongoStore({ db : ‘microblog’ // 换成字符串就好了… }) }));
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
他们都是为 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
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
求解
app.use(expressSession({ secret : 'SECRET’, cookie : {maxAge: 60601000}, store : new mongoStore({ db : ‘microblog’ // 换成字符串就好了… }) }));