Node.JS req.body String太长了?

时间:2016-02-14 17:19:39

标签: javascript node.js express

我再一次问一个可能是初学者的问题,但我已经看了很多,但却无法找到我需要的答案。我创建了一个Node.JS服务器,为我正在处理的Game State Integration项目提取数据,我需要从游戏中请求某些数据。

基本上,代码中发生的事情是我将变量newKillStatus设置为我正在阅读的player_state文件的某个部分。在我进一步讨论之前,这里是我正在使用的代码:(如果您需要更多,请询问)

fs.readFile('player_state', 'utf8', function(err, killStatus) {
    var player = 'player' in req.body ? req.body.player : null;
    if (player && player.state !== killStatus) {
        var newKillStatus = req.body.player.state.round_kills;
        if (!newKillStatus) {
            newKillStatus = '';
        }
        fs.writeFile('player_state', newKillStatus);
        console.log(newKillStatus);
    }
});

因此,您可以看到我正在尝试将newKillStatus设置为req.body.state.round_kills;,从我能理解的内容太长,因为当我尝试启动服务器时,它会给我这个错误:

  

无法阅读属性' round_kills'未定义的

但是如果我摆脱了round_kills部分它给了我round_kills,但它也给了我一大堆其他我不想设置变量的统计数据。

所以基本上我唯一的问题是如何在没有错误的情况下将var newKillStatus设置为req.body.player.state.round_kills

感谢您的帮助!

修改 我已经尝试了所有解决方案和多个字符串组合,下划线是否可能会产生错误?

1 个答案:

答案 0 :(得分:0)

经过多次尝试自己找到答案后,我找到了答案。我真的很惊讶我花了很长时间才发现这一点。实际上可能实际上是我所造成的,以及错误所导致的原因。问题实际上在var player = 'player' in req.body ? req.body.player : null;我需要将req.body.player更改为req.body.player.state,下面的代码会知道我引用的内容。

相关问题