Мой CouchDB находится в подкаталоге. Что я должен указать в качестве основного хоста?

#node.js #couchdb

#node.js #couchdb

Вопрос:

Мои базы данных CouchDB находятся внутри этого каталога:

http://example.com/couchdb/

Например, у меня есть база данных CouchDB «foo» здесь:

http://example.com/couchdb/foo/

Что я должен указать в качестве «хоста» в функции настройки основного хоста?

 cradle.setup({host: '[what goes here]',
          options: {cache: true, raw: false}});
  

Приведенный выше пример из:https://github.com/cloudhead/cradle

Я не могу заставить cradle видеть мою базу данных…

Комментарии:

1. Есть ли какой-либо «префикс» или аналогичный параметр? Я видел prefix в других библиотеках couchdb. Извините, я незнаком с cradle (продолжаю изучать его).

2. Спасибо jhs, но я не вижу никакой опции префикса.

3. Облом. Вот почему я лично предпочитаю не использовать клиент CouchDB и использовать HTTP. (В NodeJS мне нравится request модуль Mikeal. Однако я слышал из надежных источников, что Cradle хорош.

4. Просто чтобы убедиться, есть ли в ваших базах данных косая черта, например some/database , или весь CouchDB API встроен (например, через обратный прокси) в пространство имен внутри URL? Спасибо!

5. jhs: Моя база данных находится здесь: example.com/couchdb/my_database (в my_database нет косых черт) … не уверен, что вам нужно о встроенной части.

Ответ №1:

Попробуйте добавить IP-адрес вашего хоста в качестве опции основного хоста.

Комментарии:

1. IP-адрес не сработал. Я полностью удалил параметр host из «new (cradle. Подключение){}» и теперь это работает.

2. @edt: Тогда вы, вероятно, прослушиваете только соединения, поступающие с localhost на порт CouchDB, потому что это опция по умолчанию.

Ответ №2:

Короче говоря, я не уверен, что это сработает. Я взглянул на исходный код Cradle, и он выполняет много конкатенации строк для построения многих своих запросов.

Попробуйте добавить путь к имени базы данных, чтобы вместо /foo у вас была база данных couchdb/foo . По крайней мере, для запросов к базе данных (и, надеюсь, для документов, представлений, вложений и всего, что находится по этому пути) это может сработать.

 var cradle = require('cradle');
var db = new(cradle.Connection)().database('couchdb/foo');
db.get("some_docid", function(err, doc) {
    if(err) throw err;
    console.log("I got the doc!");
})
  

Извините, у меня нет префиксной настройки couch’а, чтобы протестировать это напрямую. Отрицательные отзывы приветствуются, правки приветствуются еще больше!