javascript - Node : Can you use plain Javascript objects as an in-memory datastore?

标签 javascript node.js redis in-memory-database lokijs

我可以不使用 Redis 之类的东西,甚至是 LokiJS(看起来很棒),而是可以在我的应用程序运行时在内存中创建一个大型 javascript 集合,然后查询它吗?

最佳答案

我有一个使用 socket.io 的具有这种精确模式的应用。

下面,我已经将我的 socket.io 代码翻译成使用 HTTP 请求。

在服务器上,你可以做这样的事情:

var players = []; //This will be used to store in-memory players.

他们,

var express = require('express');
var app = express();
var bodyParser = require('body-parser');


app.use(bodyParser.json()); //Need this to populate req.body on requests.
app.all('*', function (req, res, next) {
  res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
  next(); //Need this to accept incoming requests.
});


app.get('/players', function (req, res) {
  res.json(players);
});

app.post('/players', function (req, res) {
  //validation
  players.push(req.body);
});

[...]

看这个例子: http://agar.io/

这是一款非常受欢迎的游戏。现在,为什么他们会在玩游戏时将您的位置、分数或姓名存储在数据库中?这将是非常昂贵的。

关于javascript - Node : Can you use plain Javascript objects as an in-memory datastore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33434920/

相关文章:

javascript - 通过 JavaScript XHR2 对象在 PHP 中发送 ArrayBuffer

javascript - 为什么我无法使用 jquery content() 来查找我的 dom?

javascript - 如何将此 JSON 数据循环到表中?

javascript - Node.js应用程序中的reduce函数省略json json数据并且太麻烦

sql - NodeJS JSON 数组过滤

python - Celery - 如何使用多个队列?

ruby-on-rails - 破折号:连接未关闭

javascript - 单击标题项时如何在 Laravel 中添加事件类?

laravel - 使用 Laravel Echo、laravel-echo-server 和 socket.io 进行广播不起作用

json - 如何在 NodeJS 中成功解析 FFMpeg 的输出