我是node.js的新手,但很高兴尝试一下。我使用Express作为Web框架,使用Jade作为模板引擎。遵循本教程从Node Camp进行设置都很容易。
但是,我发现的一个问题是我找不到用于设置数据库的简单教程。我正在尝试构建一个基本的聊天应用程序(存储会话和消息)。
有人知道好的教程吗?
另一篇SO文章讨论了要使用的dbs,但是由于这与我曾经接触过的Django / MySQL世界大不相同,因此我想确保自己了解发生了什么。
谢谢!
Answers:
我假设您已使用其中一个代码片段(我使用了最上面的一个)以正确的方式安装了npm。
我会将redis用作数据库。首先,它确实是快速,持久的。您需要安装它,但这确实很容易。
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处理您的会话。
安装:
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旨在使每个浏览器和移动设备中的实时应用成为可能,从而模糊了不同传输机制之间的差异。
我还使用我在stackoverflow上发布的socket.io创建了一个聊天室。添加持久性+身份验证应该很容易。
使用Redis进行快速身份验证,用于会话存储,使用Couchdb进行数据库,使用coffeescript ..
检查要点:https : //gist.github.com/652819
我的大多数项目都使用此模板。您也可以使用以下方法实现类似的mongodb版本:
christkv的node-mongodb-native:https : //github.com/christkv/node-mongodb-native,或者
猫鼬:https : //github.com/learnboost/mongoose或
amark的杂种:https : //github.com/amark/mongous
我知道这是一篇过时的文章,但是如果其他人偶然发现它,我会使用大多数OP的组件(尤其是与数据库的连接)创建一个教程。使用Backbone.js的确增加了一些复杂性,但这很有趣!