我再一次问一个可能是初学者的问题,但我已经看了很多,但却无法找到我需要的答案。我创建了一个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
。
感谢您的帮助!
修改 我已经尝试了所有解决方案和多个字符串组合,下划线是否可能会产生错误?
答案 0 :(得分:0)
经过多次尝试自己找到答案后,我找到了答案。我真的很惊讶我花了很长时间才发现这一点。实际上可能实际上是我所造成的,以及错误所导致的原因。问题实际上在var player = 'player' in req.body ? req.body.player : null;
我需要将req.body.player
更改为req.body.player.state
,下面的代码会知道我引用的内容。