入门: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
存储消息并使用ZRANK
, ZRANGEBYSCORE
检索它们。
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确实增加了一些复杂性,但是它非常有趣!