Создание успокоительного API с Redis и Nodejs - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь создать сервер для обработки REST API и перебрать отсортированный набор.И API оценки результатов не работает, и я не знаю почему.Кто-нибудь может мне помочь?

var express = require('express');
var bodyParser = require('body-parser');
var redis = require('redis');
var app = express();
var JSON = require('JSON');
var client = redis.createClient(6379,'127.0.0.1');
app.use(bodyParser.urlencoded({ extended: false}))

app.listen(3000, function(){
  console.log('connected 3000 port!');
});

app.post('/score', (req, res)=>{
  var id=req.headers.id;
  var score=req.headers.score;

  client.zadd('score', id, score, function(err, reply){
    if(err){
      res.send(false);
    }else{
      res.send(true);
    }
  });
})

Это локон, который я использовал.

curl -i -X POST \
   -H "id:hi" \
   -H "score:9223372036854775807" \
   -d \
'' \
 'http://localhost:3000/score'

1 Ответ

0 голосов
/ 27 мая 2018

Относительно ZADD:

Я полагаю, что это будет что-то вроде следующего фрагмента: ( документация node_redis )

var args = [ 'score', score, id ] 
client.zadd(args,(error,response)=>{
 if (err) throw err
 console.log('added '+response+' items.')
})

Дополнительная информация: ZADD -Документация Redis


Относительно безопасности для игр:

Я все еще предлагаю добавить некоторую защиту на стороне сервера, чтобы предотвратить нежелательное вмешательство в ваши результаты ...

Я понимаю, что во многих играх, в которых есть игра для одного игрока, просто предлагается подход «пост к табло», но вы должны знать, что, если счет не сопровождается каким-либо механизмом защиты, вы не можете гарантировать, что он не был подделан... следовательно, вы открыты для читеров , изменяющих свои оценки и оценки других людей ...

Также важно отметить, что если это не сервер авторизации, где все вычисляется на стороне сервераи клиенты действуют просто как средство рендеринга и запросчик действий (для сервера, чтобы оценить), вы будете в некотором роде открыты обман , так как вы действительно никогда не можете доверять клиентам .

...