はじめに:Node.jsのデータベースをセットアップする


82

node.jsは初めてですが、試してみることに興奮しています。ExpressをWebフレームワークとして使用し、Jadeをテンプレートエンジンとして使用しています。どちらも、次のセットアップを得ることは容易だった。このチュートリアルからのノードのキャンプ

しかし、私が見つけている1つの問題は、DBをセットアップするための簡単なチュートリアルが見つからないことです。基本的なチャットアプリケーション(ストアセッションとメッセージ)を構築しようとしています。

誰かが良いチュートリアルを知っていますか?

この他のSO投稿では、使用するdbについて説明していますが、これは私がこれまで行ってきたDjango / MySQLの世界とは大きく異なるため、何が起こっているのかを確実に理解したいと思います。

ありがとう!


私はこれを言うのは嫌ですが、フレームワークはプログラミング言語の貧弱な教師だと思います。
grantwparks 2012

回答:


89

これらのスニペットの1つを使用してnpmが正しい方法でインストールされていると思います(私は一番上のスニペットを使用しました)。

Redis

私はredisをデータベースとして使用します。一つには、それは本当に速く、永続的です。あなたはそれをインストールする必要があります、しかしそれは本当に簡単です。

make

Redis-cli

次に、自分でredisで遊ぶ必要があります。SimonWillisonによるこの優れたチュートリアルをご覧になることをお勧めします。彼と私はまたredis-cli、データベースの感覚をつかむために、で遊ぶことをお勧めします。

Redisクライアント

最後に、redisクライアントをインストールする必要があります。mranneyのnode_redisを使用することをお勧めします。これは、最も高速で最も活発に開発されているクライアントだと思うからです。

インストール

npm install hiredis redis

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

データベースへのセッションの保存

また、expressの作成者は、redisを使用してセッションを処理するためのライブラリを作成しました。

インストール:

npm install connect-redis

例:

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

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

データベースへのメッセージの保存

これにはソートされたセットを使用すると思います。使用してメッセージを保存ZADDし、使用してそれらを取得しZRANKZRANGEBYSCORE

Socket.io

最後に、簡単なチャットを作成しようとしている場合は、socket.ioを確認することをお勧めします。

socket.ioは、すべてのブラウザーとモバイルデバイスでリアルタイムアプリを可能にし、さまざまな転送メカニズムの違いを曖昧にすることを目的としています。

また、stackoverflowに投稿したsocket.ioを使用してチャットを作成しました。永続性と認証を追加するのは簡単です。


4

セッションストアにRedisを使用し、coffeescriptを使用してデータベースにCouchdbを使用するExpress認証。

この要点を確認してください:https//gist.github.com/652819

私はほとんどのプロジェクトでこのテンプレートを使用しています。以下を使用して、同様のmongodbバージョンを実装することもできます。

node-mongodb-native by christkv:https//github.com/christkv/node-mongodb-native、または

マングース:https//github.com/learnboost/mongoose、または

amarkの巨大:https//github.com/amark/mongous



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.