Permalink
Browse files

need not send message to server when set undefined value

  • Loading branch information...
1 parent 1ba5864 commit 78d8f9ef9c1852c0801394bf5a38ab7264c5ea5f @jifeng jifeng committed Mar 17, 2013
Showing with 10 additions and 0 deletions.
  1. +8 −0 index.js
  2. +2 −0 test.js
View
@@ -694,6 +694,14 @@ RedisClient.prototype.send_command = function (command, args, callback) {
args = args.slice(0, -1).concat(args[args.length - 1]);
}
+ // if the value is undefined or null and command is set or setx, need not to send message to redis
+ if (command === 'set' || command === 'setex') {
+ if(args[args.length - 1] === undefined || args[args.length - 1] === null) {
+ var err = new Error('send_command: ' + command + ' value must not be undefined or null');
+ return callback(err);
+ }
+ }
+
buffer_args = false;
for (i = 0, il = args.length, arg; i < il; i += 1) {
if (Buffer.isBuffer(args[i])) {
View
@@ -1109,6 +1109,7 @@ tests.SET = function () {
var name = "SET";
client.SET(["set key", "set val"], require_string("OK", name));
client.get(["set key"], last(name, require_string("set val", name)));
+ client.SET(["set key", undefined], require_error(name));
};
tests.GETSET = function () {
@@ -1161,6 +1162,7 @@ tests.SETEX = function () {
client.SETEX(["setex key", "100", "setex val"], require_string("OK", name));
client.exists(["setex key"], require_number(1, name));
client.ttl(["setex key"], last(name, require_number_pos(name)));
+ client.SETEX(["setex key", "100", undefined], require_error(name));
};
tests.MSETNX = function () {

0 comments on commit 78d8f9e

Please sign in to comment.