Я снова задаю вопрос начинающим, но я немного оглянулся и не смог найти ответ, который мне нужен. Я создал сервер Node.JS, вытаскивающий данные для проекта интеграции состояния игры, над которым я работаю, и мне нужно запросить определенные данные из игры.Node.JS req.body Строка слишком длинная?
В основном, что происходит в коде, я устанавливаю переменную 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;
, которые, от того, что я могу понимать слишком долго, потому что, когда я пытаюсь запустить сервер, он дает мне эту ошибку:
cannot read property 'round_kills' of undefined
но если я избавлюсь от round_kills
части он дает мне round_kills
, но это также дает мне целую кучу другие статистические данные, в которые я не хочу устанавливать переменную.
Так что в основном мой вопрос только в том, как установить var newKillStatus
на req.body.player.state.round_kills
без ошибок.
Благодарим за помощь!
EDIT: Я попробовал все решения и многочисленные комбинации строк, возможно, что подчеркивание создает ошибку?
Нет, это не слишком долго. Этого просто не существует. Существует не 'req.body.player.state', а доступ к' .round_kills', который вызывает исключение. Либо у вас есть опечатка, а как «req.body.state.round_kills», или ваша сериализация или синтаксический анализ тела запроса недостаточны. – Bergi
Это очень странно, потому что если я просто использую 'req.body.state' round_kills, будет отображаться ненужная информация, и если я использую' req.body.state.health', который является еще одной частью информации в этом разделе, это работает , Так может ли это быть связано с подчеркиванием, потому что round_killhs тоже не работает. (Другая точка данных) – pmaheras18
Да, у вас действительно есть опечатка. Используйте 'req.body.state.round_kills' вместо' req.body.player.state.round_kills'. Нет '.player'! – Bergi