82 votes

Mise en route: Configuration de la base de données pour Node.js

Je suis nouvelle node.js mais je suis excité à l'essayer. J'utilise de l' Exprimer comme un framework web, et de Jade comme un moteur de template. Les deux étaient faciles à obtenir le programme d'installation en suivant ce tutoriel de Nœud de Camp.

Cependant, le seul problème que j'ai trouver est je ne peux pas trouver un tutoriel simple pour obtenir un DB mis en place. Je suis en train de construire une base d'application de chat (magasin de session et message).

Est-ce quelqu'un connais un bon tutoriel?

Cette autre SORTE de post parle de dbs à utiliser, mais comme c'est très différent de l'Django/MySQL monde j'ai été, je veux m'assurer de comprendre ce qui se passe.

Merci!

89voto

Alfred Points 32190

Je suppose que vous avez mnp installé correctement en utilisant l'un de ces fragments(j'ai utilisé celui du haut).

Redis

Je voudrais utiliser redis comme une base de données. Pour l'un, c'est vraiment rapide, persistant. Vous avez besoin de l'installer, mais c'est vraiment facile.

make

Redis-cli

Ensuite, vous devez jouer avec le redis vous-même. Je vous conseille de regarder cet excellent tutoriel par Simon Willison. Lui et moi nous vous conseillons également de jouer avec l' redis-cli pour obtenir un sentiment de la base de données.

Redis client

Enfin, vous devez installer un redis client. Je vous conseille d'utiliser mranney de node_redis parce que je pense que c'est le plus rapide et le plus activement développé client.

Installation

npm install hiredis redis

Exemple Simple, qui sont inclus dans 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();
});

Stocker les sessions dans la base de données

Aussi l'auteur de l'express a créé une bibliothèque pour gérer vos sessions à l'aide de redis.

Installation:

npm install connect-redis

Exemple:

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

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

Stockage des messages dans la base de données

Je pense que je voudrais utiliser un ensemble trié pour cela. Stocker les messages à l'aide d' ZADD et les récupérer à l'aide de ZRANK, ZRANGEBYSCORE.

Socket.io

Enfin, si vous essayez de créer d'un simple chat, je vous conseille de jeter un oeil à douille.io.

socket.io vise à faire en temps réel des applications possible dans tous les navigateurs et mobiles appareil en effaçant les différences entre les différents transports les mécanismes.

J'ai également créé un chat à l'aide d'une douille.io que j'ai posté sur stackoverflow. L'ajout de la persistance + authentification devrait être un jeu d'enfant.

4voto

Shripad K Points 6594

Exprimer l'authentification à l'aide Redis pour la session de stocker et de Couchdb pour la base de données à l'aide de coffeescript..

Cochez cette gist: https://gist.github.com/652819

J'utilise ce modèle pour la plupart de mes projets. Vous pouvez mettre en œuvre une semblable mongodb version de l'aide:

nœud-mongodb-natifs par christkv : https://github.com/christkv/node-mongodb-nativeou

mangouste : https://github.com/learnboost/mongooseou

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

3voto

En plus du didacticiel NodeCamp que vous avez mentionné, il existe un autre didacticiel NodeCamp donné par Matt Ranney, l'auteur susmentionné de la bibliothèque de nœuds redis. Cela va un peu plus en profondeur.

2voto

Gates VP Points 26481

Voici une bonne solution comprenant l'utilisation de MongoDB.

2voto

jslatts Points 2937

Je sais que c'est un vieux post, mais au cas où quelqu'un d'autre tombe sur elle, j'ai créé un tutoriel en utilisant la plupart des OP de composants, en particulier la connexion à la base de données. Il ne avoir une certaine complexité supplémentaire avec l'utilisation de Backbone.js mais il est tout dans le bon amusement!

http://fzysqr.com/2011/02/28/nodechat-js-using-node-js-backbone-js-socket-io-and-redis-to-make-a-real-time-chat-app/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X