Использование CouchDB для обслуживания HTML

Я пытаюсь использовать CouchDB с HTML / автономной REST-архитектурой. То есть никакой другой сервер приложений, кроме CouchDB и javascript в стиле ajax, не вызывает CouchDB.

Похоже, кросс-скриптинг является проблемой. Раньше я использовал Cloudkit / Tokyo Cabinet, и похоже, что нужная функция обратного вызова ввернула его в URL.

Сейчас я пробую CouchDB и получаю ту же проблему.

Вот мои вопросы:

1) Эти проблемы связаны с тем, что хранилище REST / JSON, такое как CouchDB или CloudKit, работает на другом порту, отличном от моего веб-страницы? Они оба работают локально и вызываются с "localhost".

2) Должен ли я позволить CouchDB разместить мою страницу и обслуживать HTML?

3) Как мне это сделать? Документация не казалась такой ясной ...

Спасибо, Алекс.

8
задан alxross 15 December 2009 в 23:27
поделиться

5 ответов

Я думаю, что один из способов - использовать mod_proxy в Apache. Он перенаправляет запрос от Apache к Couchdb, что может решить проблему перекрестного сценария.

# Configuration file for proxy
ProxyVia ON

ProxyPass /couchdb http://<<couchdb host>>:5984/sampleDB
ProxyPassReverse /couchdb http://<<couchdb host>>:5984/sampleDB
3
ответ дан 5 December 2019 в 06:23
поделиться

Я не могу избавиться от мысли, что вам нужен некоторый слой между уровнем представления (HTML) и моделью (CouchDB).

Таким образом, вы можете выполнять запросы, предоставлять дополнительные возможности и функции. В настоящий момент кажется, что вы визуализируете постоянные объекты прямо на уровень представления, и у вас не будет возможности изменить или расширить поведение вашей системы в будущем.

Принятие архитектуры модель-представление-контроллер изолирует вашу модель от уровня представления и даст вам некоторую гибкость в будущем.

(Признаюсь, я не могу посоветовать вам межсайтовый- проблемы со сценариями)

0
ответ дан 5 December 2019 в 06:23
поделиться

Использование CouchDB / создание вашего HTML-кода дает огромные преимущества.

Во-первых, страницы (которые являются ресурсами HTTP) привязаны к данным или к запросам данных. и CouchDB знает, когда обновлять etag при изменении страницы. Это означает, что если вы вставите nginx перед CouchDB и скажете «материал кеша», вы получите все бесплатное кеширование, которое обычно необходимо для создания самостоятельно.

Я бы настаивал на nginx> apache перед CouchDB, потому что Apache не все это прекрасно справляется с одновременными подключениями, и nginx + erlang (CouchDB) отлично справляется с этим.

Кроме того, вы можете написать эти представления на JavaScript, которые хорошо документированы в книге CouchDB http: //books.couchdb. org / relax / или на Python с использованием моего сервера просмотра http: // github.

6
ответ дан 5 December 2019 в 06:23
поделиться

Ответ прост: храните статический HTML в виде вложений в документы CouchDB. Таким образом, вы можете обслуживать HTML непосредственно из CouchDB.

Для этого существует инструмент командной строки, называемый CouchApp

Книга Mikeal, связанная с, также содержит главу (Управление документами проектирования) о том, как использовать CouchApp для этой цели.

.
10
ответ дан 5 December 2019 в 06:23
поделиться

3) вы можете использовать CouchDB шоу для генерации HTML (или любого типа контента)

7
ответ дан 5 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: