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 认为你在调用hmseton undefined,那意味着它认为那this.redisClient是未定义的;很多时候,这是因为 的值this不是你想象的那样(尽管它可能redisClient没有被初始化,等等)。this虽然如果没有看到周围的代码以及它是如何调用的就不可能说出来,但如果有必要,请检查以确保 的值是绑定的。

于 2012-05-13T05:30:26.803 回答