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!
javascript
database
node.js
Emile
źródło
źródło
Odpowiedzi:
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.
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-cli
się 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
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:
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
ZADD
i pobierać je za pomocąZRANK
,ZRANGEBYSCORE
.Socket.io
Na koniec, jeśli próbujesz stworzyć prosty czat, radzę zajrzeć na socket.io.
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.
źródło
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
źródło
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.
źródło
Wiem, że to stary post, ale na wypadek, gdyby ktoś się na niego natknął, stworzyłem samouczek przy użyciu większości komponentów OP, zwłaszcza połączenia z bazą danych. Przy użyciu Backbone.js ma pewną dodatkową złożoność, ale to dobra zabawa!
http://fzysqr.com/2011/02/28/nodechat-js-using-node-js-backbone-js-socket-io-and-redis-to-make-a-real-time-chat-app/
źródło