入门:Node.js的安装数据库

我是node.js的新手,但很高兴尝试一下。 我使用Express作为Web框架,而Jade作为模板引擎。 按照Node Camp的 这个教程 ,两者都很容易设置。

然而,我发现的一个问题是我找不到一个简单的教程来获取数据库设置 。 我正在尝试构build一个基本的聊天应用程序(商店会话和消息)。

有谁知道一个很好的教程?

这个其他的SOpost讨论了dbs的使用 – 但是因为这与我所在的Django / MySQL世界有很大的不同,所以我想确保我理解到底是怎么回事。

谢谢!

我假设你有npm安装正确的方式使用这些片段之一 (我使用了最上面的一个)。

Redis的

我会使用redis作为数据库。 对于一个它真的很快 ,坚持不懈。 你需要安装它,但这很容易。

make 

Redis的-CLI

接下来你应该自己使用redis。 我会build议你看看Simon Willison的这个优秀的教程。 他和我也build议你只是玩redis-cli来获得数据库的感觉。

Redis客户端

最后你需要安装一个redis客户端。 我build议你使用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的作者创build了一个库来处理使用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 }) }) ); 

将消息存储在数据库中

我想我会用这个sorting集 。 使用ZADD存储消息并使用ZRANKZRANGEBYSCORE检索它们。

Socket.io

最后,如果你想创build一个简单的聊天,我会build议你看看socket.io。

socket.io旨在使每个浏览器和移动设备上的实时应用成为可能,模糊了不同传输机制之间的差异。

我还创build了一个使用socket.io的聊天,我发布在stackoverflow上 。 添加持久性+authentication应该是一件轻而易举的事情。

使用Redis的会话存储和Couchdb数据库使用coffeescript的快速身份validation..

检查这个要点: 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

除了你提到的NodeCamp教程之外,还有另外一个由Matt Ranney提供的另一个nodeCamp 教程 ,上面提到了redis节点库的作者。 它进一步深入一点。

我知道这是一个旧的post,但如果有人绊倒它,我创build了一个使用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/