#node.js #couchdb
#node.js #couchdb
Вопрос:
Мои базы данных 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’а, чтобы протестировать это напрямую. Отрицательные отзывы приветствуются, правки приветствуются еще больше!