СУБД JavaScript с API, вдохновленным CouchDB

PouchDB - это API клиентской базы данных с открытым исходным кодом, написанный на JavaScript. Он создан по образцу CouchDB - базы данных NoSQL, работающей в браузере.

Если вы не знакомы с базами данных NoSQL, позвольте мне дать вам краткое введение. NoSQL - это термин, используемый для высокопроизводительных нереляционных баз данных. Он предоставляет механизм для хранения и извлечения данных, отличный от модели табличных отношений, используемой в реляционных базах данных. В этих базах данных используются различные модели данных, включая хранилище документов, графиков, ключей и значений и столбцов. Ознакомьтесь со списком баз данных NoSQL здесь.

Используя PouchDB API, мы можем создавать приложения, которые работают офлайн и онлайн. Он внутренне использует WebSQL и IndexedDB для хранения данных. Он не зависит от фреймворка, поэтому вы можете использовать его с Angular, React, Ember, Backbone или с вашим фреймворком.

PouchDB поддерживает все современные браузеры. Некоторые из них - Firefox 29+, Chrome 30+, Safari 5+, Internet Explorer 10+, Opera 21+ и так далее.

Как мы знаем, PouchDB можно использовать в качестве прямого интерфейса к серверам, совместимым с CouchDB. Итак, давайте настроим CouchDB.

Установка CouchDB

Если вы используете один из дистрибутивов Linux, вы можете установить его с помощью следующей команды.

$ sudo apt-get install couchdb

Для Windows скачайте и установите с сайта CouchDB.

В случае Mac вы можете запустить следующую команду в терминале.

$ brew install couchdb

После установки вы можете открыть в браузере http://127.0.0.1:5984/ или http: // localhost: 5984 /. Ответ должен быть примерно таким:

{"couchdb":"Welcome","version":"3.1.1", .. }

Когда вы откроете http://127.0.0.1:5984/_utils/index.html и увидите следующий экран.

Примечание. Если на Mac вы не получаете ответа при открытии http://127.0.0.1:5984/ в браузере, проверьте, запущена ли служба couchdb, используя команду:

$ curl http://127.0.0.1:5984/

Если вы получите следующий ответ, обычно служба не работает.

curl: (7) Failed to connect to 127.0.0.1 port 5984: Connection refused

В этом случае выполните следующую команду, чтобы запустить службу.

$ couchdb

Настройка CORS

Чтобы создать базу данных PouchDB на удаленном сервере CouchDB, нам необходимо включить CORS в CouchDB.

Установите CORS, используя следующий сценарий.

$ npm install -g add-cors-to-couchdb

Затем запускаем скрипт:

$ add-cors-to-couchdb

Установка PouchDB

Загрузите последнюю версию pouchdb-6.3.4.min.js со своего веб-сайта и включите в index.html следующим образом:

< script src="pouchdb-7.2.2.min.js">< /script>

Если вы используете Node.js, вы можете запустить команду:

$ npm install pouchdb

Обратитесь к этой документации, чтобы узнать о других способах установки PouchDB.

Создание базы данных

Чтобы создать локальную базу данных в PouchDB с помощью node, мы можем просто написать следующий фрагмент кода и сохранить его как index.js.

//Requiring PouchDB module
let pouchDB = require("PouchDB");
//Creating the database object
let db = new PouchDB("techshard");
console.log ("Database created Successfully.");

Затем запустите команду следующим образом:

$ node index.js

Чтобы создать удаленную базу данных, вам необходимо указать URL-адрес удаленного сервера.

//Requiring the package
let PouchDB = require("PouchDB");
//Creating the database object
let db = new PouchDB("http://127.0.0.1:5984/techshard");
db.info().then(function (info) {
  console.log(info);
});

Здесь удаленная база данных не будет создана, пока мы не вызовем API db.info (). После того, как вы запустите указанный выше JavaScript, вы сможете просмотреть информацию следующим образом:

Мы также можем просмотреть информацию, открыв http://127.0.0.1:5984/techshard в браузере.

До сих пор мы узнали, как установить и настроить PouchDB. Давайте посмотрим на некоторые операции с базой данных.

Хранение и чтение документа

Поскольку PouchDB - это база данных NoSQL, мы храним неструктурированные документы. Например:

let doc = {
   _id : '01',
   name: 'John Doe',
   age : 24,
   designation : 'Developer'
 }; 
db.put(doc);

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

db.get('01').then(function (doc) {
  console.log(doc);
});

Здесь «01» - это _id документа.

Мы увидим в консоли следующий вывод.

{ 
_id: '01',
  _rev: '1-7624dcaea7247ee0c6e280f8482d4ee7',
  name: 'John Doe',
  age: 24,
  designation: 'Developer'
}

Здесь новое поле _rev - это маркер версии. Это случайно сгенерированный идентификатор, который изменяется при создании или обновлении документа.

Удаление документа

Для удаления мы можем просто получить документ и удалить возвращенный документ.

db.get('01').then(function (doc) {  
return db.remove(doc);
});

Есть и другие способы удалить документ в PouchDB API, см. Эту документацию.

Подведение итогов

PouchDB имеет гораздо более мощные функции. Если вы заинтересованы в углубленном изучении, посетите их официальный сайт для получения подробной документации и справочника по API. Надеюсь, эта статья вызвала у вас интерес к PouchDB. Дайте мне знать в комментариях, если у вас уже есть опыт работы с CouchDB или PouchDB.

Эта статья изначально была опубликована на моем старом веб-сайте.