Как генерировать HTML-формы для CouchApp (или для любых документов JSON) - PullRequest
1 голос
/ 10 августа 2011

Традиционные веб-фреймворки, такие как Rails и Django, имеют способы генерирования HTML-форм на основе «моделей», соответствующих схеме - ТАБЛИЦАМ в базе данных.

Как это работает с CouchDB? (в котором нет таблиц и схем)

Вы просто создаете собственные формы вручную и позволяете им выступать в качестве вашей "модели / схемы"? У вас есть "модели", определенные в JavaScript? Это позволяет автоматически сгенерированные формы? У вас есть "модели" или что-то подобное, определенное как документы JSON?

Кроме того, традиционные формы HTML обрабатывают одну «запись» - по одному значению на «ключ». Документы JSON могут иметь список значений под одним ключом или другим вложенным документом! - традиционные формы HTML не справляются с этим! Документы JSON (даже документы, имеющие известный «тип документа») могут иметь «лишние» (неопределенные) поля на них - у них могут быть пропущенные поля - у них могут быть поля, значение которых отличается от ожидаемого. Все эти вещи не обрабатываются традиционными формами HTML.

Есть ли лучший способ взаимодействия пользователя с документом JSON, чем традиционные формы HTML?

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

Платформа Kanso CouchApp предоставляет наиболее полные инструменты создания схем и форм для CouchDB: http://kansojs.org

Посмотрите учебное пособие для примера использования.Определения схемы были созданы от группы до работы с CouchDB и позволяют внедрять объекты и другие сложные JSON-подобные структуры, это невероятно гибкий формат (намного более, чем JSON-схема).генерировать формы из определений вашей схемы или расширять их пользовательскими полями, виджетами, валидаторами, разрешениями и т. д.

1 голос
/ 10 августа 2011

Хотя CouchDB содержит json без схемы, вы можете определить схему json на стороне презентации. И тогда вы можете передать эту схему JSON для inputEx, который создаст форму для вас.

Смотрите здесь: http://neyric.github.com/inputex/examples/json-schema.html

InputEx очень гибок и будет обрабатывать массивы, объекты и специальные редакторы для свойств. Просто поймите, что стандарт схемы JSON не очень хорошо определен. Если вы просто используете его для выполнения операций CRUD, все будет в порядке.

Со временем, если ваша форма развивается и схема меняется, это действительно не имеет значения для couchdb. Но вам может потребоваться предоставить пользователям способ переноса данных в новую схему.

...