var q = require('q'), request = require('request'), url = require('url'), _ = require('underscore'); module.exports = function(url, options) { var dfd = q.defer(); dfd.response = q.defer(); options = options ? _.clone(options) : {}; options.uri = url || options.uri; request(options,function(err,res,body){ if ( err ) { dfd.response.reject(err); } else { if ( res.statusCode >= 200 && res.statusCode < 300 ) { dfd.resolve(body); } else { dfd.reject(body); } } dfd.response.resolve(res); }); return dfd.promise; };