Introducción: configuración de la base de datos para Node.js


82

Soy nuevo en node.js pero estoy emocionado de probarlo. Estoy usando Express como marco web y Jade como motor de plantillas. Ambos fueron fáciles de configurar siguiendo este tutorial de Node Camp .

Sin embargo, el único problema que encuentro es que no puedo encontrar un tutorial simple para configurar una base de datos . Estoy intentando crear una aplicación de chat básica (sesión de tienda y mensaje).

¿Alguien sabe de un buen tutorial?

Esta otra publicación de SO habla sobre dbs para usar, pero como esto es muy diferente del mundo de Django / MySQL en el que he estado, quiero asegurarme de que entiendo lo que está sucediendo.

¡Gracias!


Odio ser el que dice esto, pero creo que un framework es un mal profesor de un lenguaje de programación.
grantwparks

Respuestas:


89

Supongo que tiene npm instalado de la manera correcta usando uno de estos fragmentos (usé el de arriba).

Redis

Usaría redis como base de datos. Por un lado, es muy rápido y persistente. Necesitas instalarlo, pero eso es realmente fácil.

make

Redis-cli

A continuación, deberías jugar con redis tú mismo. Te aconsejo que consultes este excelente tutorial de Simon Willison . Él y yo también te aconsejamos que juegues con el redis-clipara tener una idea de la base de datos.

Cliente de Redis

Finalmente necesitas instalar un cliente redis. Le aconsejaría que utilice node_redis de mranney porque creo que es el cliente más rápido y desarrollado de forma más activa.

Instalación

npm install hiredis redis

Ejemplo simple, incluido como example.js:

var redis = require("redis"),
    client = redis.createClient();

client.on("error", function (err) {
    console.log("Error " + err);
});

client.set("string key", "string val", redis.print);
client.hset("hash key", "hashtest 1", "some value", redis.print);
client.hset(["hash key", "hashtest 2", "some other value"], redis.print);
client.hkeys("hash key", function (err, replies) {
    console.log(replies.length + " replies:");
    replies.forEach(function (reply, i) {
        console.log("    " + i + ": " + reply);
    });
    client.quit();
});

Almacenar sesiones en la base de datos

Además, el autor de express ha creado una biblioteca para manejar sus sesiones usando redis.

Instalación:

npm install connect-redis

Ejemplo:

var connect = require('connect')
      , RedisStore = require('connect-redis');

connect.createServer(
  connect.cookieDecoder(),
  // 5 minutes
  connect.session({ store: new RedisStore({ maxAge: 300000 }) })
);

Almacenar mensajes en la base de datos

Creo que usaría un conjunto ordenado para esto. Almacenar los mensajes usando ZADDy recuperarlos usando ZRANK, ZRANGEBYSCORE.

Socket.io

Finalmente, si está intentando crear un chat simple, le aconsejo que eche un vistazo a socket.io.

socket.io tiene como objetivo hacer posibles las aplicaciones en tiempo real en todos los navegadores y dispositivos móviles, difuminando las diferencias entre los diferentes mecanismos de transporte.

También creé un chat usando socket.io que publiqué en stackoverflow . Agregar persistencia + autenticación debería ser muy sencillo.


4

Autenticación rápida usando Redis para el almacenamiento de sesiones y Couchdb para la base de datos usando coffeescript.

Consulte esta esencia: https://gist.github.com/652819

Utilizo esta plantilla para la mayoría de mis proyectos. También puede implementar una versión similar de mongodb usando:

node-mongodb-native por christkv: https://github.com/christkv/node-mongodb-native , o

mangosta: https://github.com/learnboost/mongoose , o

mongous de amark: https://github.com/amark/mongous


3

Además del tutorial de NodeCamp que mencionas, hay otro tutorial de NodeCamp dado por Matt Ranney, el autor antes mencionado de la biblioteca de nodos de redis. Se profundiza un poquito más.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.