You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by ro...@apache.org on 2015/07/12 13:55:53 UTC

[33/50] couchdb-nano git commit: fix: db.follow breaks when couchdb is at a prefix #268

fix: db.follow breaks when couchdb is at a prefix #268


Project: http://git-wip-us.apache.org/repos/asf/couchdb-nano/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-nano/commit/10d857b5
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-nano/tree/10d857b5
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-nano/diff/10d857b5

Branch: refs/heads/master
Commit: 10d857b50512ce898ef8c01d376c2de60d7a5cfa
Parents: 6a65db7
Author: Gregor Martynus <gr...@martynus.net>
Authored: Tue Mar 24 21:03:08 2015 +0100
Committer: Gregor Martynus <gr...@martynus.net>
Committed: Tue Mar 24 22:49:36 2015 +0100

----------------------------------------------------------------------
 lib/nano.js | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-nano/blob/10d857b5/lib/nano.js
----------------------------------------------------------------------
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 @@ module.exports = exports = nano = function dbScope(cfg) {
     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 @@ module.exports = exports = nano = function dbScope(cfg) {
 
     // 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 @@ module.exports = exports = nano = function dbScope(cfg) {
       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 @@ module.exports = exports = nano = function dbScope(cfg) {
 
   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 @@ module.exports = exports = nano = function dbScope(cfg) {
  */
 nano.version = require('../package').version;
 nano.path    = __dirname;
+
+function urlResolveFix(couchUrl, dbName) {
+  if (/[^\/]$/.test(couchUrl)) {
+    couchUrl += '/';
+  }
+  return u.resolve(couchUrl, dbName);
+}