1

失敗する次のコード ブロックがあります。

this.redisClient.hmset('user:' + userObj.getUserId(), {
                'userId' : userObj.getUserId(),
                'salutation' : userObj.getSalutation(),
                'fn' : userObj.getFn(),
                'mi' : userObj.getMi(),
                'ln' : userObj.getLn(),
                'suffix' : userObj.getSuffix(),
                'userType' : userObj.getUserType(),
                'created' : userObj.getCreated()
            });

エラー スタックは次のとおりです。

node.js:201
    throw e; // process.nextTick error, or 'error' event on first tick
          ^
TypeError: Cannot call method 'hmset' of undefined
at /node_apps/oc/api/v1/routes/user/db.user.js:70:34
at try_callback (/node_apps/oc/api/v1/node_modules/redis/index.js:484:9)
at RedisClient.return_reply (/node_apps/oc/api/v1/node_modules/redis/index.js:555:13)
at HiredisReplyParser.<anonymous> (/node_apps/oc/api/v1/node_modules/redis/index.js:256:14)
at HiredisReplyParser.emit (events.js:67:17)
at HiredisReplyParser.execute (/node_apps/oc/api/v1/node_modules/redis/lib/parser/hiredis.js:43:18)
at RedisClient.on_data (/node_apps/oc/api/v1/node_modules/redis/index.js:440:27)
at Socket.<anonymous> (/node_apps/oc/api/v1/node_modules/redis/index.js:70:14)
at Socket.emit (events.js:67:17)
at TCP.onread (net.js:329:14)

Node Redis クライアントで Node 0.6.17 を実行しています。洞察はありますか?ありがとう!

4

1 に答える 1

1

Node が を呼び出しhmsetていると判断したundefined場合、それはそれthis.redisClientが未定義であると判断したことを意味します。多くの場合、これは の値がthisあなたが思っているものと異なるためです (ただし、redisClient初期化されていないなどの可能性もあります)。this周囲のコードとそれがどのように呼び出されるかを見ずに言うことは不可能ですが、必要に応じて の値がバインドされていることを確認してください。

于 2012-05-13T05:30:26.803 に答える