Başlarken: Node.js için Veritabanı Kurulumu


82

Node.js'de yeniyim ancak denemekten heyecan duyuyorum. Ben kullanıyorum Express bir web çerçeve olarak ve Yeşim bir şablon motoru olarak. İkisi de aşağıdaki kurulum almak kolay Bu eğitimde gelen Düğüm Camp .

Ancak bulduğum tek sorun, bir DB kurulumu almak için basit bir eğitim bulamıyorum . Temel bir sohbet uygulaması oluşturmaya çalışıyorum (mağaza oturumu ve mesaj).

İyi bir öğretici bilen var mı?

Bu diğer SO gönderisi, kullanılacak dbs hakkında konuşuyor - ancak bu, bulunduğum Django / MySQL dünyasından çok farklı olduğu için, neler olup bittiğini anladığımdan emin olmak istiyorum.

Teşekkürler!


Bunu söyleyen kişi olmaktan nefret ediyorum ama bence bir çerçeve, bir programlama dilinin zayıf bir öğretmeni.
grantwparks

Yanıtlar:


89

Bu parçacıklardan birini kullanarak npm'yi doğru şekilde yüklediğinizi varsayıyorum ( ilkini kullandım).

Redis

Redis'i bir veritabanı olarak kullanırdım. Birincisi, gerçekten hızlı ve ısrarcı. Yüklemeniz gerekiyor ama bu gerçekten çok kolay.

make

Redis-cli

Daha sonra redis ile kendiniz oynamalısınız. Simon Willison tarafından yazılan bu mükemmel öğreticiye bakmanızı tavsiye ederim . O ve ben redis-cli, veritabanı hakkında fikir edinmek için sadece ile oynamanızı tavsiye ediyoruz .

Redis istemcisi

Son olarak bir redis istemcisi kurmanız gerekir. Size mranney'nin node_redis'ini kullanmanızı tavsiye ederim çünkü bence en hızlı ve en aktif olarak geliştirilmiş istemci.

Kurulum

npm install hiredis redis

Example.js olarak dahil edilen basit örnek:

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();
});

Oturumları veri tabanında saklama

Ayrıca express yazarı, oturumlarınızı redis kullanarak idare etmek için bir kitaplık oluşturdu .

Kurulum:

npm install connect-redis

Misal:

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

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

Mesajları veri tabanında saklama

Bunun için sıralanmış bir set kullanacağımı düşünüyorum . Kullanarak mesaj Mağaza ZADDve kullanarak bunları almak ZRANK, ZRANGEBYSCORE.

Socket.io

Son olarak, basit bir sohbet oluşturmaya çalışıyorsanız, socket.io'ya bir göz atmanızı tavsiye ederim.

socket.io her tarayıcıda ve mobil cihazda gerçek zamanlı uygulamaları mümkün kılmayı ve farklı aktarım mekanizmaları arasındaki farkları bulanıklaştırmayı amaçlamaktadır.

Ayrıca socket.io kullanarak stackoverflow'da yayınladığım bir sohbet oluşturdum . Kalıcılık + kimlik doğrulama eklemek çok kolay olmalıdır.


4

Coffeeescript kullanarak oturum deposu için Redis ve veritabanı için Couchdb kullanarak hızlı kimlik doğrulama.

Bu özü kontrol edin: https://gist.github.com/652819

Bu şablonu projelerimin çoğu için kullanıyorum. Şunu kullanarak da benzer bir mongodb sürümünü uygulayabilirsiniz:

node-mongodb-native, christkv tarafından: https://github.com/christkv/node-mongodb-native veya

firavun faresi: https://github.com/learnboost/mongoose veya

amark'ın mongous: https://github.com/amark/mongous


3

NodeCamp öğreticisine ek olarak , redis düğüm kitaplığının yukarıda bahsedilen yazarı Matt Ranney tarafından verilen başka bir NodeCamp öğreticisi olduğundan bahsediyorsunuz. Biraz daha derinlere iniyor.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.