在Node.js中pipe理会话?
在Node.js中pipe理会话variables的最好方法是什么? 有没有图书馆?
你可以很容易地使用:
-
连接: http : //senchalabs.github.com/connect/
连接就像Ruby中的Rack一样。 它给你一个额外的层,你可以“authentication”,会话,cookies等“玩”。
其他选项是使用框架:
-
Express.js: http : //expressjs.com/
这似乎是最常用的node.js框架。 就像用于Ruby的Sinatra,并运行在连接之上。
-
Geddy: http : //geddyjs.org/
如果你想做更复杂的WebApps,Geddy是你select的。 就像Ruby的Rails一样。
nodejs提供了一个基本的http API。 http是无状态的,会话和会话variables的思想存在于构build在http之上的框架/协议中。 http://en.wikipedia.org/wiki/Session_%28computer_science%29
请看http://geddyjs.org/或http://expressjs.com/作为使用提供会话的节点构build的Web框架的示例。;
只需将其卸载到memcache或其他caching机制。 我不会给你的服务器带来这样的负担。 什么是一个超级精益Web服务器必须记住的东西点。
我也会尝试开发你的网站作为一个应用程序,而不是一个网站,或把你的网站作为一个应用程序,使用html5的美妙function,如本地存储/本地数据库,并减less服务器和客户机之间的stream量。
如果一切都失败(或网站很小),那么什么是阻止你写你自己的会话类。 没那么难 特别是如果它是一个内存types的东西。 把一些计时器的逻辑超时会议,你去。 该死的dynamic语言,如JavaScript,应该是一个辛苦。
结构应该是一个字典,关键是会话和价值是一个包含最后通信和function的细节(以便访问某些function)的对象。 添加扫描function以清除超时的旧会话。 和宾果。 基本会话服务。 一个基本检查“是列表中的会话密钥…是/否…获取详细信息”…我认为多数民众赞成在….或有一些function,我失踪了。
我个人会尽可能避免使用任何第三方工具。 时间的变化非常快,你总是可以依靠自己开发的代码。
唐纳德的答案是好的 – 一旦你进入连接中间件的洋葱模式,你必须决定什么types的会话存储使用。 Express中的缺省值是一个MemoryStore,不适用于生产用途。 以下是您的一些select:
Mongo https://github.com/mikkel/express-session-mongo – 一定要使用“native_parser:false”选项
Redis https://github.com/visionmedia/connect-redis – 非常好,但是如果你还没有使用redis的pub / sub或存储,它可能不是理想的。
请注意,还有其他select – 这取决于您的项目。 寻找可以利用现有技术堆栈的东西。
如果您正在寻找使用Node.js进行严肃的Web开发,请使用Express框架 ; 它支持会话。
使用–sessions选项创buildExpress项目。
$ express --sessions
要安装Express:
$ npm install express -g