fix: db.follow breaks when couchdb is at a prefix #268
diff --git a/lib/nano.js b/lib/nano.js
index e957594..5fcb6d8 100644
--- a/lib/nano.js
+++ b/lib/nano.js
@@ -44,7 +44,7 @@
     var rootPath = path.pathname.replace(/\/?$/, '/..');
 
     if (db) {
-      cfg.url = u.resolve(cfg.url, rootPath).replace(/\/?$/, '');
+      cfg.url = urlResolveFix(cfg.url, rootPath).replace(/\/?$/, '');
       return db;
     }
   }
@@ -89,7 +89,7 @@
 
     // http://wiki.apache.org/couchdb/HTTP_database_API#Naming_and_Addressing
     if (opts.db) {
-      req.uri = u.resolve(req.uri, encodeURIComponent(opts.db));
+      req.uri = urlResolveFix(req.uri, encodeURIComponent(opts.db));
     }
 
     if (opts.multipart) {
@@ -305,7 +305,7 @@
       qs = {};
     }
 
-    qs.db = u.resolve(cfg.url, encodeURIComponent(dbName));
+    qs.db = urlResolveFix(cfg.url, encodeURIComponent(dbName));
 
     if (typeof callback === 'function') {
       return followAgent(qs, callback);
@@ -316,7 +316,7 @@
 
   function _serializeAsUrl(db) {
     if (typeof db === 'object' && db.config && db.config.url && db.config.db) {
-      return u.resolve(db.config.url, encodeURIComponent(db.config.db));
+      return urlResolveFix(db.config.url, encodeURIComponent(db.config.db));
     } else {
       return db;
     }
@@ -748,3 +748,10 @@
  */
 nano.version = require('../package').version;
 nano.path    = __dirname;
+
+function urlResolveFix(couchUrl, dbName) {
+  if (/[^\/]$/.test(couchUrl)) {
+    couchUrl += '/';
+  }
+  return u.resolve(couchUrl, dbName);
+}