You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
Implemented HGETALL response as object
This commit is contained in:
10
index.js
10
index.js
@@ -412,6 +412,16 @@ RedisClient.prototype.return_reply = function (reply_buffer) {
|
|||||||
var command_obj = this.command_queue.shift();
|
var command_obj = this.command_queue.shift();
|
||||||
|
|
||||||
if (command_obj && typeof command_obj.callback === "function") {
|
if (command_obj && typeof command_obj.callback === "function") {
|
||||||
|
// HGETALL special case replies with keyed Buffers
|
||||||
|
if ('HGETALL' == command_obj.command) {
|
||||||
|
var obj = {};
|
||||||
|
for (var i = 0, len = reply_buffer.length; i < len; ++i) {
|
||||||
|
var key = reply_buffer[i].toString(),
|
||||||
|
val = reply_buffer[++i];
|
||||||
|
obj[key] = val;
|
||||||
|
}
|
||||||
|
reply_buffer = obj;
|
||||||
|
}
|
||||||
command_obj.callback(null, reply_buffer);
|
command_obj.callback(null, reply_buffer);
|
||||||
} else {
|
} else {
|
||||||
if (this.debug_mode) {
|
if (this.debug_mode) {
|
||||||
|
2
test.js
2
test.js
@@ -355,7 +355,7 @@ tests.HGETALL = function () {
|
|||||||
client.hmset(["hosts", "mjr", "1", "another", "23", "home", "1234"], require_string("OK", name));
|
client.hmset(["hosts", "mjr", "1", "another", "23", "home", "1234"], require_string("OK", name));
|
||||||
client.HGETALL(["hosts"], function (err, obj) {
|
client.HGETALL(["hosts"], function (err, obj) {
|
||||||
assert.strictEqual(null, err, name + " result sent back unexpected error");
|
assert.strictEqual(null, err, name + " result sent back unexpected error");
|
||||||
assert.strictEqual(6, Object.keys(obj).length, name);
|
assert.strictEqual(3, Object.keys(obj).length, name);
|
||||||
assert.ok(Buffer.isBuffer(obj.mjr), name);
|
assert.ok(Buffer.isBuffer(obj.mjr), name);
|
||||||
assert.strictEqual("1", obj.mjr.toString(), name);
|
assert.strictEqual("1", obj.mjr.toString(), name);
|
||||||
assert.strictEqual("23", obj.another.toString(), name);
|
assert.strictEqual("23", obj.another.toString(), name);
|
||||||
|
Reference in New Issue
Block a user