节点Redis客户端无法使用方法“HMSET”

时间:2012-05-13 02:01:14

标签: node.js command node-redis

我有以下代码块失败:

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。任何见解?谢谢!

1 个答案:

答案 0 :(得分:1)

如果Node认为您在hmset上呼叫undefined,则表示它认为this.redisClient未定义;很多时候,这是因为this的值不是你想象的那样(尽管可能是redisClient没有被初始化,等等)。虽然没有看到周围的代码以及如何调用它是不可能的,但检查以确保this的值在必要时被绑定。