我可以不使用 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/