Не удается прочитать свойство «длина» неопределенного в функции node_redis hgetall

У меня есть следующий код, генерирующий ошибку:

leagueclient.hgetall userLeagueKey, getLeagueInfo

Я проверил, что ключ правильный, и getLeagueInfo выполняется правильно с правильным возвращаемым значением, но в промежутке между ними я получаю Невозможно прочитать свойство 'длина' неопределенного. Отладка говорит, что это в hgetall.

Я включил отладочные сообщения в node_redis

send 127.0.0.1:6379 id 2: *2
$7
hgetall
$14
userLeagueId:0

send_command buffered_writes: 0  should_buffer: false
true
Cannot read property 'length' of undefined
net read 127.0.0.1:6379 id 2: *6
$11
challengeId
$1
0
$10
leagueName
$5
Oatmo
$22
currentDiscussionEntry
$1
2

Итак, ошибка возникает после отправки запроса и получения результата.

Любая идея, что может создавать ошибку, и, в качестве альтернативы, лучший способ ее отладки?


person Fred Gruner    schedule 01.11.2012    source источник


Ответы (1)


Проблема здесь оказалась в попытке вернуть результаты из функции вместо передачи результатов через обратный вызов. Я уверен, что это обычная проблема для начинающих программистов, использующих node, поэтому я решил упомянуть об этом. Все функции, которые зависят от внешнего доступа, должны работать с обратным вызовом.

person Fred Gruner    schedule 13.11.2012