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


82

我是node.js的新手,但很高兴尝试一下。我使用Express作为Web框架,使用Jade作为模板引擎。遵循本教程Node Camp进行设置都很容易。

但是,我发现的一个问题是我找不到用于设置数据库的简单教程。我正在尝试构建一个基本的聊天应用程序(存储会话和消息)。

有人知道好的教程吗?

一篇SO文章讨论了要使用的dbs,但是由于这与我曾经接触过的Django / MySQL世界大不相同,因此我想确保自己了解发生了什么。

谢谢!


我不愿意这么说,但是我认为框架是编程语言的糟糕老师。
Grantwparks 2012年

Answers:


89

我假设您已使用其中一个代码片段(我使用了最上面的一个)以正确的方式安装了npm

雷迪斯

我会将redis用作数据库。首先,它确实是快速,持久的。您需要安装它,但这确实很容易。

make

Redis-cli

接下来,您应该自己玩redis。我建议您看一下西蒙·威利森Simon Willison)撰写的这篇出色的教程。他和我还建议您仅使用,redis-cli以了解数据库。

Redis客户端

最后,您需要安装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,并使用检索它们ZRANKZRANGEBYSCORE

套接字

最后,如果您尝试创建简单的聊天,我建议您看一下socket.io。

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

我还使用我在stackoverflow上发布的socket.io创建了一个聊天室。添加持久性+身份验证应该很容易。



3

除了提到的NodeCamp教程之外,还有上述Redis节点库作者Matt Ranney给出的另一个NodeCamp教程。它进了一点点的深度。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.