Pierwsze kroki: konfiguracja bazy danych dla Node.js.

82

Jestem nowy w node.js, ale nie mogę się doczekać, aby go wypróbować. Używam Express jako frameworka internetowego i Jade jako silnika szablonów. Oba były łatwe do skonfigurowania po tym samouczku z Node Camp .

Jednak jedynym problemem, który znajduję, jest to, że nie mogę znaleźć prostego samouczka dotyczącego konfiguracji bazy danych . Próbuję zbudować podstawową aplikację do czatu (zapisywanie sesji i wiadomości).

Czy ktoś zna dobry tutorial?

Ten drugi post SO mówi o dbs do użycia - ale ponieważ jest to bardzo różne od świata Django / MySQL, w którym byłem, chcę się upewnić, że rozumiem, co się dzieje.

Dzięki!

Emile
źródło
Nienawidzę tego mówić, ale myślę, że framework to kiepski nauczyciel języka programowania.
grantwparks

Odpowiedzi:

89

Zakładam, że zainstalowałeś npm we właściwy sposób, używając jednego z tych fragmentów (użyłem górnego).

Redis

Użyłbym redis jako bazy danych. Po pierwsze, jest naprawdę szybki , wytrwały. Musisz go zainstalować, ale to naprawdę proste.

make

Redis-cli

Następnie powinieneś sam pobawić się z redisem. Radziłbym zapoznać się z tym doskonałym tutorialem autorstwa Simona Willisona . On i ja również radzimy po prostu bawić redis-clisię programem, aby poczuć bazę danych.

Klient Redis

Na koniec musisz zainstalować klienta redis. Radziłbym skorzystać z node_redis firmy Mranney, ponieważ uważam, że jest to najszybszy i najbardziej aktywnie rozwijany klient.

Instalacja

npm install hiredis redis

Prosty przykład, zawarty jako 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();
});

Przechowywanie sesji w bazie danych

Również autor express stworzył bibliotekę do obsługi twoich sesji za pomocą redis.

Instalacja:

npm install connect-redis

Przykład:

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

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

Przechowywanie wiadomości w bazie danych

Myślę, że użyłbym do tego posortowanego zestawu . Przechowywania wiadomości użyciu ZADDi pobierać je za pomocą ZRANK, ZRANGEBYSCORE.

Socket.io

Na koniec, jeśli próbujesz stworzyć prosty czat, radzę zajrzeć na socket.io.

socket.io ma na celu udostępnienie aplikacji czasu rzeczywistego w każdej przeglądarce i na każdym urządzeniu mobilnym, zacierając różnice między różnymi mechanizmami transportu.

Stworzyłem również czat przy użyciu socket.io, który opublikowałem na stackoverflow . Dodanie trwałości i uwierzytelniania powinno być proste.

Alfred
źródło
4

Ekspresowe uwierzytelnianie przy użyciu Redis do przechowywania sesji i Couchdb do bazy danych przy użyciu Coffeescript.

Sprawdź sedno: https://gist.github.com/652819

Używam tego szablonu do większości moich projektów. Możesz również zaimplementować podobną wersję mongodb używając:

node-mongodb-native by christkv: https://github.com/christkv/node-mongodb-native lub

mongoose: https://github.com/learnboost/mongoose lub

amark's mongous: https://github.com/amark/mongous

Shripad Krishna
źródło
3

Oprócz samouczka NodeCamp, o którym wspominasz, istnieje jeszcze inny samouczek dotyczący NodeCamp, który podał Matt Ranney, wspomniany wcześniej autor biblioteki redis node. Wchodzi trochę głębiej.

Żurawinowy ból głowy
źródło