CouchDB似乎用的人不多。大多數(shù)類似應用都是用的mongodb。 最近想看看有沒有能在瀏覽器端訪問服務器restful接口的庫.看到了Pouchdb。(https://pouchdb.com/)
pouchdb是couchdb的瀏覽器版本。可以和couchdb同步,也可以直接使用couchdb。
仔細看了下。couchdb+pouchdb的組合。
有點相當于
- loopback (http://loopback.io/)
- parse (https://parse.com/)
- leancloud (https://leancloud.cn/)
CouchDB看似相對簡單些。
比較文章(https://forum.ionicframework.com/t/what-are-the-differences-between-couchdb-firebase-parse-and-pouchdb/36001/2) 重點在parse的用戶管理(重置密碼什么的)比較簡單。
搜這個比較文章的時候又看到2個東西(Firebase,kinto)
Kinto is a generic JSON document store with
sharing and synchronisation capabilities.
(Python+Postgresql)
https://www.kinto-storage.org/
http://kinto.readthedocs.io/en/latest/overview.html
CouchDB的安全
http://docs.couchdb.org/en/2.0.0/intro/security.html
https://github.com/nolanlawson/pouchdb-authentication
https://www.joshmorony.com/creating-a-multiple-user-app-with-pouchdb-couchdb/
默認情況下,couchdb允許localhost上的任意讀寫。
admin可以在
http://127.0.0.1:5984/_utils/ 上面建立
也可也這樣建立 curl -X PUT $HOST/_config/admins/anna -d '"secret"'
存在etc/local.ini中
普通用戶在_user表中
需要先在http://127.0.0.1:5984/_utils/ 上setup。否則默認的_user表不出現(xiàn)
在一個普通表中,用戶又分為members和admins
共同點,都能讀寫表
不同點:admins可以改寫design document
默認表中,不是系統(tǒng)管理員的,都是普通用戶(包括匿名用戶)
要把用戶設為管理員,得用服務器管理原設置_security
curl -X PUT http://localhost:5984/mydatabase/_security \
-u anna:secret \
-H "Content-Type: application/json" \
-d '{"admins": { "names": [], "roles": [] }, "members": { "names": ["jan"], "roles": [] } }'
couchDB最麻煩的時更新的時候要有_rev
查詢并不很方便
權限設定是基于表的,然而一個表內(nèi)有多個用戶的數(shù)據(jù),基于記錄的權限設定很必要。
備份dump/restore
https://github.com/raffi-minassian/couchdb-dump