我是新来的.但是我很高兴try 一下.我使用Express作为web框架,使用Jade作为模板引擎.这两个都很容易得到设置后,从Node Camp this tutorial.

然而,我发现的一个问题是I can't find a simple tutorial for getting a DB set up.我正在try 构建一个基本的聊天应用程序(存储会话和消息).

Does anyone know of a good tutorial?

另外SO post个讨论了dbs的使用——但由于这与我所处的Django/MySQL世界非常不同,我想确保我了解发生了什么.

谢谢

推荐答案

I assume you have 100 installed the correct way using one of these 101(I used the top one).

雷迪斯

我会使用redis作为数据库.首先,它真的是fast,持续的.你需要安装它,但这真的很容易.

make

雷迪斯-cli

接下来你应该自己玩redis.我建议你在Simon Willison分钟前阅读这篇优秀的教程.他和我还建议你只需玩redis-cli就可以了解数据库.

雷迪斯 client

最后,您需要安装一个redis客户端.我建议您使用mranney's node_redis,因为我认为它是开发速度最快、最活跃的客户.

Installation

npm install hiredis redis

Simple example, included as 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.

Installation:

npm install connect-redis

Example:

var connect = require('connect')
      , 雷迪斯Store = require('connect-redis');

connect.createServer(
  connect.cookieDecoder(),
  // 5 minutes
  connect.session({ store: new 雷迪斯Store({ maxAge: 300000 }) })
);

在数据库中存储消息

我想我会用sorted set来做这个.使用ZADD存储消息,使用ZRANKZRANGEBYSCORE检索消息.

插座木卫一

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

插座io的目标是制作实时应用程序

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

Node.js相关问答推荐

容器端口是容器内 node 应用程序的端口吗?

如何使用聚合管道交换键值对

设置默认 node 版本

Inno Setup如何在现有文本文件中追加新内容

仅在一次查询中 MongoDB 上最近的一对位置

在全局对象上声明的函数

如何从mongoose 对象内嵌套的数组中提取数组元素?

合并Shift对象数组以创建最终的排班表

如何修复我的 NodeJS SSE 写入函数以在后续调用中更新 HTML?

bcrypt.compare 每次都返回 false

express cors request.body formData显示undefined

获取数组的至少一个元素包含子字符串的文档

在 gatsby 中安装软件包时不推荐使用的错误

Node.js + Express + Handlebars.js + 局部视图

如何在 AWS 上的 Amazon Linux AMI 中自动启动 node.js 应用程序?

有人在 NodeJS 中实现过 wiki 吗?

node 应用程序是否有任何独立的 gui 模块

如何从命令行在 Node.js 上运行 Jasmine 测试

使用 Node.js 和 Express 进行简单的 API 调用

如何在express 中设置默认路径(路由前缀)?