Пришло время вам использовать навыки, ранее полученные в этой статье (и первый краткий обзор CouchDB), и, наконец, приступить к разработке приложений CouchDB с использованием JavaScript, HTML и CSS.

CouchApp — это приложение на JavaScript и HTML5, которое может быть загружено непосредственно в браузер из CouchDB без какого-либо другого программного обеспечения в стеке. В общем, люди выбрали CouchDB (и мы решили, что пришло время поговорить о преимуществах ее использования для создания приложения), потому что у нее менее структурированная операция, дающая больше свободы при проектировании базы данных.

Пора начинать строить!

Если вы чувствуете себя достаточно предприимчивым, сегодня ваш счастливый день, так как мы собираемся показать вам, как разработать ваше первое приложение CouchDB с помощью CouchApp и JS.

Прежде всего, вы должны знать, что CouchDB основан на модели документов базы данных (более гибкое решение, IMO); и это также широко распространенный выбор в бизнесе. Например, по отраслям клиенты CouchDB делятся на компьютерное программное обеспечение (27%), ИТ и услуги (10%) и подбор персонала и подбор персонала (9%).

Можно сказать, что CouchApp генерирует структуру проекта и решает фронт и бэк на одном и том же контроллере (помните, как MongoDB поставляется с тремя инструментами и требует от программиста постоянно прыгать между ними?). Этот разработчик CouchDB также является частью Apache, поэтому проблем с совместимостью между ними не будет — здесь все совпадает. Все остается в семье, верно?

Использование Couchapp — отличный повод попробовать что-то новое и захватывающее. Вы когда-нибудь задумывались о создании собственного интернет-магазина с множеством проработанных функций? Мы говорим о разработке чего-то сложного простым способом. И вот как вы это делаете.

Начать установку CouchApp

Для работы CouchApp требуется, чтобы в вашей системе был установлен Python. Чтобы проверить, какая версия уже установлена, откройте терминал и введите следующую команду:

$ Python -V

Если Python установлен, вы должны увидеть следующий ответ:

Python 2.7.15+

Чтобы получить помощь в настройке Python, перейдите по следующей ссылке: Как установить менеджер пакетов Python PIP в Ubuntu.

Следующим шагом будет установка инструментов настройки для Python и Couchapp. Для этого воспользуемся менеджером пакетов:

apt-get install python-setuptools
easy_install -U couchapp

Давайте запустим наш первый CouchApp!

Теперь, когда вы установили CouchApp, вы можете начать писать приложение CouchDB с помощью JS!

1. Создайте подкаталог couchapps под своим домашним каталогом.

mkdir ~/couchapps
cd ~/couchapps

2. Используйте следующую команду для создания CouchApp, так как в этом тесте будет couchproducts.

couchapp generate couchproducts
cd ~/couchproducts

Это должно сгенерировать что-то вроде этого:

[INFO] Generating a new CouchApp in 
~/couchapps/couchproducts

3. Если мы перейдем в каталог couchproducts, мы должны увидеть пять подкаталогов: _attachments, списки, shows, поставщики и представления. Нам нужно заменить эти папки на те, что есть в этом репозитории github: CouchProducts.

Сейчас мы перейдем в подкаталог _attachments с помощью следующей команды:

cd _attachments

CouchApp автоматически создает файл index.html и файл main.css в подкаталоге стилей.

Откройте файл index.html в своем любимом текстовом редакторе. Здесь вы можете изменить код столько, сколько хотите.

4. Когда вы закончите вносить изменения, вы можете сохранить файл и перезагрузить окно браузера, используя следующую команду для отправки вашего CouchApp.

couchapp push . http://127.0.0.1:5984/couchproducts

Если вы настроили аутентификацию, она будет генерировать такой ответ:

2019-05-30 11:54:29 [CRITICAL] {"error":"unauthorized","reason":"You are not a db or server admin."}

Время ввести имя пользователя и пароль администратора:

couchapp push . http://admin:[email protected]:5984/couchproducts

Нажмите на ссылку, чтобы увидеть запущенное приложение:

2019-05-30 12:28:12 [INFO] Visit your CouchApp here:
http://127.0.0.1:5984/couchproducts/_design/couchproducts/index.html

Теперь вы можете создавать товары с их описанием и удалять его!

Что он на самом деле делает?

Чтобы выяснить это, давайте сначала проверим нашу базу данных по Фокстону.

http://127.0.0.1:5984/_utils/#database/couchproducts/_all_docs

Мы видим, что новый документ был создан.

Нажмите на первый, и эй! Это Продукт, который мы установили ранее.

как нам это сделать? Давайте кратко рассмотрим, что делает файл main.js.

Как мы видим в первом экземпляре, весь наш код будет находиться в экземпляре CouchApp. Когда вы создаете приложение, оно автоматически настраивает для вас переменные базы данных и проектного документа.

В начале функции add_product мы пропускаем preventDefault (это событие отменяет событие, если его можно отменить, не останавливая остальную часть операции, его можно вызвать снова). Затем мы создаем наш документ newProduct в формате JSON, используя значение поля ввода Product для значения поля prod и описание для значения описание.

Далее у нас есть оператор if, здесь нам нужно заполнить поле «Товар», иначе он не позволит вам создать новый продукт. Но, если это не так, эта функция сохраняет документ с параметрами, которые вы указали ранее. Теперь мы добавляем «кнопки удаления», чтобы позаботиться о двух сценариях: во-первых, добавление кнопок удаления к ссылкам, сгенерированным, когда пользователь добавляет новую задачу. А во-вторых, добавление кнопок удаления к ссылкам, генерируемым при запуске приложения.

Верните мне мои данные!

Пока эта часть не поддерживает состояние между сессиями! Но не о чем беспокоиться… Теперь мы должны сообщить нашему приложению, чтобы оно возвращало данные из базы данных CouchDB.

Откройте терминал и перейдите в каталог couchproducts:

cd couchapps/couchproducts/views/get_products/

Вы найдете файл map.js. Эта функция принимает единственный аргумент, который является самим документом, и использует функцию emit для получения результата. Эта функция emit принимает два аргумента: ключ и значение.

Теперь мы можем использовать представление с функцией карты. Эта функция (показана ниже) извлекает продукты, которые в настоящее время хранятся в базе данных, при первой загрузке приложения. Как видно, при вызове функции emit (в файле map.js) в представление добавляется строка. Итак, в нашей функции «get_products» нам просто нужно указать, какой атрибут мы хотим вызвать:

  • row.key: укажите название продукта.
  • row.value.[value]: укажите конкретное значение.

И это все! Теперь вы можете улучшить свои навыки, чтобы определять новые поля для каждого документа независимо друг от друга с помощью базы данных CouchDB, а затем администрировать ее с помощью Project Fauxton.

Помните, что все git репозитория можно скачать здесь, нажав здесь CouchProducts.

Вывод

В этой статье вы узнали, как создать приложение, в котором вы можете добавлять продукты в базу данных, используя форму, которую вы дали приложению. Мы знаем, что это приложение довольно простое в его нынешнем виде, но с небольшим знанием JS вы можете создать лучшее приложение и, знаете что? Вы можете создать лучшее приложение Product Manager!

Не можете насытиться Apache? Ознакомьтесь с нашим пошаговым руководством по использованию Apache Cassandra Stress Tool как профессионал.