javascript - 入门 : Setup Database for Node. js

标签 javascript database node.js

我是 node.js 的新手,但很高兴尝试一下。我正在使用 Express作为 Web 框架,以及 Jade作为模板引擎。两者都很容易在 this tutorial 之后进行设置来自 Node Camp .

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

有谁知道好的教程吗?

这另一个 SO post谈到要使用的 dbs——但由于这与我所经历的 Django/MySQL 世界非常不同,我想确保我了解正在发生的事情。

谢谢!

最佳答案

我假设你有 npm使用其中一种安装正确的方法 snippets (我用的是最上面的)。

Redis

我会使用 redis 作为数据库。一方面它真的是fast , 执着的。您需要安装它,但这真的很简单。

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();
});

在数据库中存储 session

express 的作者还创建了一个库来处理您的 sessions使用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 }) })
);

在数据库中存储消息

我想我会使用 sorted set为了这。使用 ZADD 存储消息并使用 ZRANKZRANGEBYSCORE 检索它们。

Socket.io

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

socket.io aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms.

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

关于javascript - 入门 : Setup Database for Node. js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4542694/

相关文章:

javascript - 浏览器在动态添加的基本 html 标记后加载 Assets 两次

JavaScript - 动态 SVG - onload 属性 - 未触发事件

javascript - Express.js - 如何获取已定义路线的数量?

php - Magento 以编程方式更改库存可用性

node.js - 在 Mongoose 中设置查找后转换 Hook 的最简单方法

Javascript - 每 x 秒执行一次函数,但只执行函数 3 次

node.js - 使用 nodejs 在单个请求上解决多个 Azure 服务总线消息

javascript - 如何使用 JavaScript 或 jQuery 将选定的文本包装到特定标签中的网页中?

c# - 清理数据库返回数据

database - MariaDB 列存储 LAST_INSERT_ID() 替代方案