middleware.js
function assign() {
  var result = {};
  var args = Array.prototype.slice.call(arguments);
  for(var i = 0; i < args.length; i++) {
    var obj = args[i];
    if(typeof obj !== 'object') {
      continue;
    }
    for(var key in obj) {
      if(obj.hasOwnProperty(key)) {
        result[key] = obj[key];
      }
    }
    obj = void 0;
  }
  return result;
}
function assign() {
  var result = {};
  var args = Array.prototype.slice.call(arguments);
  for(var i = 0; i < args.length; i++) {
    var obj = args[i];
    if(typeof obj !== 'object') {
      continue;
    }
    for(var key in obj) {
      if(obj.hasOwnProperty(key)) {
        result[key] = obj[key];
      }
    }
    obj = void 0;
  }
  return result;
}
function assign ( ) { var result = { } ; var args = Array . prototype . slice . call ( arguments ) ; for ( var i = 0 ; i < args . length ; i ++ ) { var obj = args [ i ] ; if ( typeof obj !== 'object' ) { continue ; } for ( var key in obj ) { if ( obj . hasOwnProperty ( key ) ) { result [ key ] = obj [ key ] ; } } obj = void 0 ; } return result ; }
Merge multiple obects together

@param     {Object...}
@return    {Object}
Merge multiple obects together