Skip to content

Instantly share code, notes, and snippets.

@ayatmaulana ayatmaulana/pouchdb
Created Jun 17, 2019

Embed
What would you like to do?
# PouchDB sebagai alternative LocalStorage pada Browser
![](https://av-uploads.s3.amazonaws.com/articel_upload/pouchdb_logo.png)
> PouchDB is an open-source JavaScript database inspired by Apache CouchDB that is designed to run well within the browser.
> PouchDB was created to help web developers build applications that work as well offline as they do online.
It enables applications to store data locally while offline, then synchronize it with CouchDB and compatible servers when the application is back online, keeping the user's data in sync no matter where they next login.
> (source: https://pouchdb.com)
Salah satu limitasi pada *LocalStorage* pada browser adalah dia hanyalah sebuah *key - value* storage yang di simpan dalam browser dan juga hanya bisa menyimpan tipe data String saja, tidak bisa menyimpan data Array maupun Object, sehingga apabila developer ingin menyimpan tipe data tersebut kedalam LocalStorage, developer harus mengubahnya terlebih dahulu kedalam bentuk JSON String.
Dengan limitasi tersebut
bukan hanya itu PouchDB dapat di sinkronasikan dengan CouchDB pada sisi server, namun di tulisan kali ini kita tidak akan membahas itu dan hanya fokus pada PouchDB
PouchDB mendukung semua browser modern yang menjadikan IndexedDB menjadi storage utama dan WebSQL sebagai fallback nya
salah satu good feature dari pouchDB adalah
1. Cross Browser
2. LightWeight
3. Easy to learn
4. Open Source
## Browser Support
- Firefox 29+ (Including Firefox OS and Firefox for Android)
- Chrome 30+
- Safari 5+
- Internet Explorer 10+
- Opera 21+
- Android 4.0+
- iOS 7.1+
- Windows Phone 8+
bukan hanya itu PouchDB juga dapat berjalan pada Cordova/Phonegap, NWJS, Electron, Chrome App dan juga Nodejs ekosistem dibawah LevelDB (https://github.com/google/leveldb)
## Perbandingan dengan SQL Concept
| SQL Concept | PouchDB Concept |
| --- | --- |
| Table | ❌ |
| Row | Document |
| Column | Field |
| Primary Key | field `_id` |
| Index | View |
## Api Overview
#### 1. Create Database
```javascript
var db = new Pouch("TADAEngineering")
```
#### 2. Delete Database
```javascript
// create database
var db = new Pouch("TADAEngineering")
// destroying database
db.destroy()
.then(success => ...)
.catch(error => ...)
```
#### 3. Create a Document
```javascript
// create object person
var person = {
"name": "John Doe",
"city": "Jakarta",
"work": "TADA",
"position": "Software Engineer",
}
// store to pouchdb
db.put(person)
.then(success => ...)
.catch(error => ...)
```
#### 4. Fetch Document
```javascript
db.get("person")
.then(success => ...)
.catch(error => ...)
```
#### 5. Delete Document
```javascript
db.remove("person")
.then(success => ...)
.catch(error => ...)
```
## Plugins
Dengan dukungan komunitas yang lumayan banyak, tak heran jika PouchDB memiliki beberapa plugins yang dapat membantu para developer menangani masalah tertentu seperti
- [PouchDB Authentication](https://github.com/pouchdb-community/pouchdb-authentication) - adalah salah satu plugin untuk authenticasi didalam pouchDB
- [Peer Pouch](https://github.com/natevw/PeerPouch) - salah satu plugin untuk memudahkan menggunakan PouchDB dengan webRTC
- [PouchDB Quick Search](https://github.com/nolanlawson/pouchdb-quick-search) - untuk membantu proses Full Text Search pada Pouch
- [Crypto Pouch](https://github.com/calvinmetcalf/crypto-pouch) - membantu dalam urusan enkripsi data pada PouchDB
- [Pouch Collate](https://github.com/pouchdb/pouchdb/tree/master/packages/node_modules/pouchdb-collate)
kamu bisa melihat plugins yang tersedia disini https://pouchdb.com/external.html.
## Kesimpulan
PouchDB adalah salah satu database bejalan diatas browser yang menurut saya lumayan powerful karena penggunaan yang mudah, API yang jelas, dan dokumentasi yang sangat lengkap, sehingga sangat cocok digunakan oleh developer dalam membangun sebuah web app, dan tak hanya itu PouchDB bisa di sinkronasi dengan CouchDB yaitu salah satu jenis database yang berjalan di sisi server sehingga cocok digunakan untuk membangun sebuah webapp yang Offline First App.
## Referensi
- https://pouchdb.com/api.html#fetch_document
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.