0

エラーを生成する次のコードがあります:

leagueclient.hgetall userLeagueKey, getLeagueInfo

キーが正しいことを確認し、getLeagueInfoが正しい戻り値で正しく実行されましたが、その間にundefinedのCannotreadプロパティ'length'を取得しました。デバッグはそれが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

そのため、リクエストを送信して結果を取得した後にエラーが発生します。

何がエラーを引き起こしている可能性があるのか​​、あるいはそれをデバッグするための最良の方法はありますか?

4

1 に答える 1

1

ここでの問題は、コールバックを介して結果を渡すのではなく、関数から結果を返そうとしていることであることが判明しました。これはノードを使用する新しいプログラマーにとって一般的な問題だと確信しているので、言及したいと思いました。外部アクセスに依存するすべての関数は、コールバックで動作する必要があります。

于 2012-11-13T06:46:23.070 に答える