Начало работы: настройка базы данных для Node.js - PullRequest
82 голосов
/ 28 декабря 2010

Я новичок в node.js, но очень рад попробовать.Я использую Express в качестве веб-фреймворка и Jade в качестве движка шаблонов.И то, и другое легко было настроить, следуя этому учебнику из Node Camp .

Однако я обнаружил лишь одну проблему: Я не могу найти простой учебникдля получения БД настроили .Я пытаюсь создать базовое приложение для чата (сеанс и сообщение в хранилище).

Кто-нибудь знает хороший учебник?

Этот другой ТАК пост говорит о dbs для использования, но поскольку это сильно отличается от мира Django / MySQL, в котором я был, я хочу убедиться, что я понимаю, что происходит.

Спасибо!

Ответы [ 4 ]

89 голосов
/ 28 декабря 2010

Полагаю, вы правильно установили npm , используя один из этих фрагментов (я использовал верхний).

Redis

Я бы использовал redis в качестве базы данных.Для одного это действительно быстрый , постоянный.Вам нужно установить его, но это действительно просто.

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.

Установка:

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 и извлекайте их с помощью ZRANK, ZRANGEBYSCORE.

Socket.io

Наконец, если вы пытаетесь создать простой чат, я бы посоветовал вам иметьвзгляд на socket.io.

socket.io призван сделать приложения реального времени возможными в любом браузере и мобильном устройстве, стирая различия между различными транспортными механизмами.

Я также создал чат с помощью socket.io, который я разместил в stackoverflow .Добавление постоянства + аутентификации должно быть проще простого.

4 голосов
/ 30 декабря 2010

Экспресс-аутентификация с использованием Redis для хранения сеансов и Couchdb для базы данных с использованием coffeescript ..

Проверьте эту суть: https://gist.github.com/652819

Я использую этот шаблон для большинства моих проектов. Вы можете также реализовать аналогичную версию mongodb, используя:

node-mongodb-native от christkv: https://github.com/christkv/node-mongodb-native, или

Мангуст: https://github.com/learnboost/mongoose, или

Амаркс: https://github.com/amark/mongous

3 голосов
/ 28 декабря 2010

В дополнение к упомянутому вами учебнику по NodeCamp есть еще одно учебное пособие по по NodeCamp , данное Мэттом Ранни, вышеупомянутым автором библиотеки узлов redis.Это входит в чуть больше глубины.

2 голосов
/ 02 марта 2011

Я знаю, что это старый пост, но на случай, если кто-нибудь еще наткнется на него, я создал учебник, используя большинство компонентов ОП, особенно соединение с базой данных. Он имеет некоторую сложность с использованием 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...