Browse Source

refactored our duplicate code

master
Brett Langdon 13 years ago
parent
commit
4adac83d2f
1 changed files with 19 additions and 26 deletions
  1. +19
    -26
      lib/index.js

+ 19
- 26
lib/index.js View File

@ -14,36 +14,12 @@ mongodb.Collection.prototype.findOne = function findOne(){
if(args[0]['_id'] != undefined && args[0]['_id'] != null){
var db_name = this.db.databaseName;
var key = db_name + '.' + args[0]['_id'];
redisClient.get(key, function(err, results){
if(err || !results){
args.push(function(err, results){
if(!err && results){
redisClient.set(key, JSON.stringify(results));
}
callback(err, results);
});
native_findOne.apply(self, args);
} else{
callback(null, JSON.parse(results));
}
});
this._handle_findOne(key, args, callback);
} else if(Object.keys(args[0]).length == 1){
var keys = Object.keys(args[0]);
var db_name = this.db.databaseName;
var key = db_name + '.' + keys[0] + '.' + args[0][keys[0]];
redisClient.get(key, function(err, results){
if(err || !results){
args.push(function(err, results){
if(!err && results){
redisClient.set(key, JSON.stringify(results));
}
callback(err, results);
});
native_findOne.apply(self, args);
} else{
callback(null, JSON.parse(results));
}
});
this._handle_findOne(key, args, callback);
} else{
native_findOne.apply(this, arguments);
}
@ -52,6 +28,23 @@ mongodb.Collection.prototype.findOne = function findOne(){
}
};
mongodb.Collection.prototype._handle_findOne = function _handle_findOne(key, args, callback){
var redisClient = this.db.serverConfig['_redisClient'];
redisClient.get(key, function(err, results){
if(err || !results){
args.push(function(err, results){
if(!err && results){
redisClient.set(key, JSON.stringify(results));
}
callback(err, results);
});
native_findOne.apply(self, args);
} else{
callback(null, JSON.parse(results));
}
});
};
var native_server = mongodb.Server;
mongodb.Server = function Server(host, port, options){
var options = (options)?options:{};


Loading…
Cancel
Save