无法通过请求json

时间:2017-04-23 21:44:31

标签: javascript json node.js firebase

当我实际进入XXXX YYYY时,我会在我的html页面中获取玩家json代码(大约150个值)。 但是当我试图在玩家列表中使用一个函数时,为什么不包含所有150个值,并且尝试将我抛入catch错误部分,在那里我可以看到玩家json里面只有100个玩家。

知道可能是什么问题吗?

if(yourID === "XXXX" && targetID === "YYYY"){
    return players;
}
try{
    if(isUserAlive(yourID)){
        if(targetID === ""){
            return userTargetInfo(yourID);
        }
        var checkForMatch = getUserTarget(yourID);
        if(checkForMatch === targetID){
            killTarget(targetID);
            getUser(yourID).targetID = getTargetTarget(targetID);
            addScore(yourID);
            return userTargetInfo(yourID);
            //return getTargetTargetStats(targetID);
        }else{
            return "INVALID";
        }
    }else{
        return "DEAD"
    }
}catch(err){
    console.log("Error",console.log(players))
    return "INVALID"    
}

编辑:由于我没有时间,我创建了2个网站并将数据库分成2个不同的数据库,因此每个网站的工作量不超过100人。此时没有时间修复错误。所以我不会选择解决方案,因为我不会很快就会尝试。 谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

检查您正在使用的链接API,它可能与其集成了分页。在这种情况下,我将返回一定数量的对象1st然后您可以重新请求获得下一批。很可能他们可能有一个选项来更改返回的对象的数量(有时是最大值)

答案 1 :(得分:0)

我非常确定body作为字符串返回。尝试将其更改为对象,以便您可以更轻松地使用它。

变化:

 players = body;

为:

 players = JSON.parse(body);

我不确定您的其余代码,但您可能希望在var变量声明中添加players,因为这看起来就像您第一次设置它一样。

  

研究:名称空间冲突

如果您仍然遇到问题,请修改您的问题以包含您从console.log(JSON.parse(body));获得的回复。您将能够获得更多有用的答案。就个人而言,我很想看到如下的键:

 { query:
    { count: 1,
      created: '2017-04-23T22:03:31Z',
      lang: 'en-US',
      results: { channel: [Object] } } }

如果它已分页,您应该会在其中看到某种cursor键,或prevnext以及某种totalCount。< / p>

希望这有帮助。