Я новичок в node.js, но очень рад попробовать. Я использую Express в качестве веб-фреймворка и Jade в качестве механизма шаблонов. Оба были легко настроены после этого руководства от Node Camp .
Однако я обнаружил одну проблему: я не могу найти простого руководства по настройке БД . Я пытаюсь создать базовое приложение чата (сеанс хранения и сообщение).
Кто-нибудь знает хороший учебник?
В этом другом сообщении SO говорится об использовании dbs, но поскольку это сильно отличается от мира Django / MySQL, в котором я был, я хочу убедиться, что понимаю, что происходит.
Благодаря!
javascript
database
node.js
Эмиль
источник
источник
Ответы:
Я предполагаю, что вы правильно установили npm, используя один из этих фрагментов (я использовал верхний).
Redis
Я бы использовал redis в качестве базы данных. Во-первых, это действительно быстро , настойчиво. Вам необходимо установить его, но это действительно просто.
Redis-cli
Затем вы должны сами поиграть с Redis. Я бы посоветовал вам взглянуть на этот отличный учебник Саймона Уиллисона . Мы с ним также советуем вам просто поиграть с
redis-cli
базой данных.Клиент Redis
Наконец, вам нужно установить клиент Redis. Я бы посоветовал вам использовать node_redis от mranney, потому что я думаю, что это самый быстрый и наиболее активно разрабатываемый клиент.
Установка
Простой пример, включенный как 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.
Установка:
Пример:
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, который я разместил в stackoverflow . Добавление постоянства + аутентификации должно быть легким делом.
источник
Экспресс-аутентификация с использованием 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 или
mongous amark: https://github.com/amark/mongous
источник
В дополнение к руководству по NodeCamp, которое вы упомянули, есть еще одно руководство по NodeCamp, данное Мэттом Рэнни, вышеупомянутым автором библиотеки узлов redis. Он идет немного глубже.
источник
Я знаю, что это старый пост, но на тот случай, если кто-то еще наткнется на него, я создал учебник, используя большинство компонентов 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/
источник