Wprowadzenie: Konfiguracja bazy danych dla węzła.js

Jestem nowy w node.js, ale jestem podekscytowany, aby go wypróbować. Używam Express jako frameworka sieciowego, a Jade jako silnika szablonów. Oba były łatwe do uzyskania po Ten samouczekz Node Camp.

Jednak jedynym problemem, który znajduję, jest nie mogę znaleźć prostego tutoriala, aby uzyskać konfigurację DB. Próbuję zbudować podstawową aplikację do czatu (sesję sklepu i wiadomość).

Czy ktoś zna dobry tutorial?

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

Dzięki!

Author: Community, 2010-12-28

4 answers

Zakładam, że masz npm zainstalowany poprawny sposób, używając jednego z tych snippetów (użyłem tego górnego).

Redis

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

make

Redis-cli

Następnie należy grać z redis siebie. Radzę ci spojrzeć na ten doskonały tutorial autorstwa Simona Willisona. On i ja również doradzimy Ci aby po prostu pobawić się redis-cli, aby poczuć bazę danych.

Redis client

Na koniec musisz zainstalować klienta redis. Radziłbym użyć node_redis, ponieważ uważam, że jest to najszybszy i najaktywniej rozwijany klient.

Instalacja

npm install hiredis redis

Prosty przykład, dołączony jako przykład.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ługa 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 tegosortowanego zestawu . Przechowuj wiadomości za pomocą ZADD i pobieraj je za pomocą ZRANK, ZRANGEBYSCORE.

Socket.io

Wreszcie, jeśli próbujesz stworzyć prosty czat, radzę ci spojrzeć na socket.io.

Socket.io / align = "left" / aplikacje możliwe w każdej przeglądarce i telefonie komórkowym urządzenia, zacierając różnice między różnymi transportami mechanizmy.

Stworzyłem też czat używając socket.io które zamieściłem na stackoverflow . Dodanie persistence + authentication powinno być proste.

 89
Author: Alfred,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:00:20

Express authentication using Redis for session store and CouchDB for database using coffeescript..

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

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

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

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

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

 4
Author: Shripad Krishna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-30 02:22:51

Oprócz poradnika NodeCamp, o którym wspominasz, jest jeszcze jeden poradnik nodecamp napisany przez Matta Ranneya, wspomnianego autora biblioteki węzłów redis. Wchodzi w głębszą głębię.

 3
Author: Cranberry Headache,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-28 09:15:07

Wiem, że to stary post, ale na wypadek, gdyby ktoś jeszcze się na niego natknął, stworzyłem tutorial przy użyciu większości komponentów OP, zwłaszcza połączenia z bazą danych. Ma trochę dodatkowej złożoności z wykorzystaniem szkieletu.js, ale to wszystko w dobrej zabawie!

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

 2
Author: jslatts,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-02 03:31:26