Начало работы: настройка базы данных для Node.js

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

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

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

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

Спасибо!

Ответ 1

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

Redis

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

make

Redis-кли

Затем вы должны играть с redis самостоятельно. Я бы посоветовал вам взглянуть на этот отличный учебник Саймон Уиллисон. Мы с ним также советуем вам просто играть с 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, который я разместил на fooobar.com/questions/62000/.... Добавление стойкости + аутентификация должно быть легким.

Ответ 2

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

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

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

node -mongodb-native by christkv: https://github.com/christkv/node-mongodb-native или

mongoose: https://github.com/learnboost/mongoose или

amark mongous: https://github.com/amark/mongous

Ответ 3

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

Ответ 4

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