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!
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.
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
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ę.
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!
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