Respuestas:
Puedes hacerlo muy fácilmente usando:
Conectar: http://senchalabs.github.com/connect/
Connects es como Rack en Ruby. Te brinda una capa extra donde puedes "jugar" con autenticación, sesiones, cookies, entre otros.
Otra opción es utilizar marcos:
Express.js: http://expressjs.com/
Parece ser el framework node.js más utilizado. Es como Sinatra para Ruby y corre encima de connect.
Geddy: http://geddyjs.org/
Si quieres hacer WebApps más complejas, Geddy es la que eliges. Es como Rails for Ruby.
nodejs proporciona una API http básica. http no tiene estado, y existen ideas de sesiones y variables de sesión en el marco / protocolos construidos sobre http. http://en.wikipedia.org/wiki/Session_%28computer_science%29
Eche un vistazo a http://geddyjs.org/ o http://expressjs.com/ como ejemplos de marcos web creados con nodos que proporcionan sesiones.
Simplemente descárguelo en Memcache o algún otro mecanismo de almacenamiento en caché. No cargaría a sus servidores con este tipo de cosas. ¿Cuál es el punto de un servidor web súper delgado que tiene que recordar cosas?
También trataría de desarrollar su sitio como una aplicación y no como un sitio web, o trataría su sitio web como una aplicación, usaría las maravillosas características de html5 como el almacenamiento local / bases de datos locales y reduciría la cantidad de tráfico entre el servidor y las máquinas cliente. .
Si todo lo demás falla (o el sitio es pequeño), entonces, ¿qué te impide escribir tu propia clase de sesión? No es tan difícil. Especialmente si es algo del tipo en memoria. Ponga un poco de lógica de temporizador para las sesiones de tiempo de espera y listo. Maldita sea, en un lenguaje dinámico como JavaScript, debería ser pan comido.
La estructura debe ser un diccionario en el que la clave sea la sesión y el valor un objeto que contenga detalles de la última comunicación y capacidades (para permitir el acceso a ciertas funciones). Agregue una función de barrido para borrar sesiones antiguas que han expirado. y bingo. Un servicio de sesión básico. una verificación básica en "es la clave de sesión en la lista ... sí / no ... obtener detalles" ... y creo que eso es todo ... o hay alguna característica que me falta.
Personalmente, evitaría cualquier herramienta de terceros durante el mayor tiempo posible. Las arenas del tiempo cambian muy rápido y siempre puede depender del código desarrollado por usted mismo.
La respuesta de Donald es buena: una vez que ingresa al patrón de cebolla del middleware de conexión, debe tomar una decisión sobre qué tipo de tienda de sesión usar. El predeterminado en Express es un MemoryStore y no está diseñado para uso en producción. Estas son algunas de sus opciones:
Mongo https://github.com/mikkel/express-session-mongo - Asegúrese de usar la opción 'native_parser: false'
Redis https://github.com/visionmedia/connect-redis : muy bien, pero si aún no está usando redis para pub / sub o almacenamiento, puede que no sea ideal.
Tenga en cuenta que hay otras opciones, depende de su proyecto. Busque algo que pueda introducir aprovechando su pila de tecnología existente.
Si está buscando un desarrollo web serio con Node.js, use Express framework ; admite sesiones.
Cree el proyecto Express con las opciones --sessions.
$ express --sessions
Para instalar Express:
$ npm install express -g
cookie-sessiona tu package.josntrabajo.