我是node.js的新手,但我很高兴尝试一下。我使用Express作为Web框架,Jade作为模板引擎。在this tutorial的Node Camp之后,两者都很容易设置。
然而,我发现的一个问题是我找不到一个简单的教程来设置数据库。我正在尝试构建一个基本的聊天应用程序(存储会话和消息)。
有没有人知道一个好的教程?
这个其他SO post讨论了使用dbs的问题 - 但由于这与我所处的Django / MySQL世界非常不同,我想确保我理解发生了什么。
谢谢!
答案 0 :(得分:89)
我假设您npm使用其中一个snippets安装了正确的方式(我使用了前一个)。
我会将redis用作数据库。对于其中一个,它确实fast,持久。你需要安装它,但这很容易。
make
接下来你应该自己玩redis。我建议你看看Simon Willison这个优秀的教程。他和我还建议您只使用redis-cli
来感受数据库。
最后,您需要安装一个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来处理你的sessions。
<强>安装:强>
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 }) })
);
我想我会用sorted set来做这件事。使用ZADD
存储邮件,并使用ZRANK
,ZRANGEBYSCORE
。
最后,如果你想创建一个简单的聊天,我建议你看一下socket.io。
socket.io旨在制作实时应用 适用于所有浏览器和移动设备 设备,模糊了差异 不同的运输之间 机制。
我还使用我在stackoverflow上发布的socket.io创建了一个聊天。添加持久性+身份验证应该是轻而易举的事。
答案 1 :(得分:4)
使用Redis进行会话存储的快速身份验证,使用coffeescript进行数据库的Couchdb ..
检查这个要点:https://gist.github.com/652819
我在大多数项目中使用此模板。您也可以使用以下方法实现类似的mongodb版本:
christkv的node-mongodb-native:https://github.com/christkv/node-mongodb-native或
mongoose:https://github.com/learnboost/mongoose或
amark的mongous:https://github.com/amark/mongous
答案 2 :(得分:3)
除了NodeCamp教程之外,你还提到了另外一个NodeCamp tutorial由Matt Ranney给出了上述redis节点库的作者。它进一步深入。
答案 3 :(得分:2)
我知道这是一篇旧帖子,但是如果其他人偶然发现它,我使用大多数OP的组件创建了一个教程,特别是与数据库的连接。使用Backbone.js确实增加了一些复杂性,但它一切都很有趣!