web-dev-qa-db-ja.com

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

私はnode.jsは初めてですが、試してみることに興奮しています。 Webフレームワークとして Express を使用し、テンプレートエンジンとして Jade を使用しています。どちらも このチュートリアル から Node Camp に続くセットアップを簡単に取得できました。

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

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

この他の SO post は使用するdbsについて話しますが、これは私がこれまで行ってきたDjango/MySQLの世界とは非常に異なるため、何が起こっているのかを確実に理解したいと思います。

ありがとう!

82
Emile

あなたは npm がこれらの snippets (I一番上)。

レディス

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

make

Redis-cli

次に、自分でredisで遊ぶ必要があります。 Simon Willison によるこの優れたチュートリアルをご覧になることをお勧めします。彼と私は、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を使用して sessions を処理するライブラリを作成しました。

インストール:

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

データベースにメッセージを保存する

これには sorted set を使用すると思います。 ZADDを使用してメッセージを保存し、ZRANKZRANGEBYSCOREを使用してメッセージを取得します。

Socket.io

最後に、簡単なチャットを作成する場合は、socket.ioをご覧になることをお勧めします。

socket.ioは、すべてのブラウザーとモバイルデバイスでリアルタイムアプリを実現し、異なるトランスポートメカニズムの違いを曖昧にすることを目指しています。

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

89
Alfred

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

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

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

christkvによるnode-mongodb-native: https://github.com/christkv/node-mongodb-native 、または

mongoose: https://github.com/learnboost/mongoose 、または

アマークの巨大な: https://github.com/amark/mongous

4
Shripad Krishna

NodeCampチュートリアルに加えて、別のNodeCampがあります tutorial Matt Ranneyが前述のredisノードライブラリの作成者から与えられたものです。それはもう少し深く入ります。

3

これが古い投稿であることは知っていますが、他の誰かがそれに出くわした場合に備えて、OPのほとんどのコンポーネント、特にデータベースへの接続を使用してチュートリアルを作成しました。 Backbone.jsを使用すると複雑さが増しますが、すべてがとても楽しいです!

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
jslatts