PouchDB基礎系列(一)
寫在前面:
公司的一個專案是用到PouchDB,這是我第一次接觸這個庫,為了上手專案,所以對PouchDB的基礎進行了學習,這個系列是簡單記錄PouchDB的常用API。
什麼是PouchDB?
上圖是官網對PouchDB的介紹,大概而言:PouchDB是一個瀏覽器資料庫,開發者可以通過PouchDB在本地儲存資料,並且這些資料的在離線的情況也可以使用,同時,PouchDB可以在Node.js中執行。最後,PouchDB是使用JavaScript編寫的開源專案。
此外,PouchDB是受Apache CouchDB所啟發,當其執行在瀏覽器或者Node.js時,應用程式在聯機時將與CouchDB伺服器或者相容伺服器進行同步
一、安裝PouchDB與使用
1、安裝下載
(1)從官網下載PouchDB或者通過CDN服務:https://pouchdb.com/download.html
注:在生產環境建議下載壓縮版,在開發環境下載未壓縮版,以供開發人員進行除錯
(2)通過npm下載
npm install --save pouchdb
同時,官網也提供了另外一個操作,假如僅在瀏覽器使用PouchDB,則可以使用下面的npm命令
npm install --save pouchdb-browser
2、使用
如果是通過第一種方法下載,在html檔案引入js檔案,並且在script標籤中就可以使用PouchDB
<script src="//cdn.jsdelivr.net/npm/[email protected]/dist/pouchdb.min.js"></script> <script> var db = new PouchDB('my_database'); </script>
注:上面是通過CDN服務進行使用
通過npm包下載使用方法,在需要使用的頁面中進行require應用
var PouchDB = require('pouchdb'); var db = new PouchDB('my_database');
二、關於PouchDB的API
API概述
PouchDB是具有非同步API,支援callback回撥,Promises以及非同步功能,官網建議是使用Promise,我個人也是建議使用Promise,在現在的前端開發中,Promise常見的解決非同步操作的解決方法。同時,大部分的API格式
db.doSomething(args..., [options], [callback])
其中,options配置項以及callback回撥是可選的
Callbacks
Callbacks使用標準Node.js的寫法
function(error,result){ /* ... ... */ }
當沒有錯誤的時候,undefined將作為error的值
Promises
當沒有指定使用Callbacks時,則認API會預設返回Promise物件。
假如要對PouchDB使用自定義的Promise,則必須在載入PouchDB之前先重新定義全域性的Promise物件
<script>window.Promise = MyCustomPromiseLibrary;</script> <script src="path/to/pouchdb.js"></script>
在上述程式碼中,MyCustomPromiseLibrary為我自行定義的Promise,則我必須在scrpit指令碼載入PouchDB前覆蓋掉全域性的Promise
Async function
可以在PouchDB使用基於Promise的async/await關鍵字,當然前提是專案是支援ES 7的或者使用了Babel這樣的轉譯工具
async function myFunction(){ /* ... ... */ }
三、PouchDB常見的API
Create a database 建立資料庫
new PouchDB([name], [options])
這個操作會建立一個新的資料庫或者開啟已有的資料庫,如果name的值為一個URL時,如“http://domain.com/dbname”,則此時PouchDB將充當遠端的CouchDB例項的資料庫,否則此時將使用已存在的後端語言來建立本地資料庫
配置項
name:name是必需的。
options:
本地資料庫的options: