我热衷于在浏览器内存中使用PouchDB来获取Angular应用程序。这个PouchDB将从远程LevelDB数据库复制,该数据库从算法中提供键值对。所以,在远程端,我会安装PouchDB-Server。在本地端,我会在node
提示符下执行以下操作(如here所述)。
var localDB = new PouchDB('mylocaldb')
var remoteDB = new PouchDB('https://remote-ip-address:5984/myremotedb')
localDB.sync(remoteDB, {
live: true
}).on('change', function (change) {
// yo, something changed!
}).on('error', function (err) {
// yo, we got an error! (maybe the user went offline?)
});
如上面的代码片段所述,我们如何启动支持TLS实时复制的PouchDB实例? 如何启动支持TLS进行实时复制的PouchDB实例?
答案 0 :(得分:0)
抱歉,我误解了你的问题。我以为你打算通过HTTPS
连接到带有PouchDB的CouchDB服务器。因此,以下答案实际上没有回答您的问题。
我创建了一个server.js
文件,如下所示,通过HTTPS
与我的CouchDB进行通信。请注意,SSL
证书(在我的情况下)是自签名的,并且在6984
的情况下,CouchDB默认侦听端口TLS
:
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; // Ignore rejection, becasue CouchDB SSL certificate is self-signed
//import PouchDB from 'pouchdb'
const PouchDB = require('pouchdb')
const db = new PouchDB('https://admin:****@192.168.1.106:6984/reproduce')
db.allDocs({
include_docs: true,
attachments: false
}).then(function (result) {
// handle result
console.log(result)
}).catch(function (err) {
console.log(err);
});
我使用$ node server.js
运行上述文件,并且我获得了预期的结果:
$ node server.js
{ total_rows: 3,
offset: 0,
rows:
[ { id: '5d6590d3-41c7-4011-be5d-b21f80079ae5',
key: '5d6590d3-41c7-4011-be5d-b21f80079ae5',
value: [Object],
doc: [Object] },
{ id: 'ec6a36d1-952e-4d86-9865-3587c6079fb5',
key: 'ec6a36d1-952e-4d86-9865-3587c6079fb5',
value: [Object],
doc: [Object] },
{ id: 'f508e7aa-b4dc-42fc-96be-b7c1ffa54172',
key: 'f508e7aa-b4dc-42fc-96be-b7c1ffa54172',
value: [Object],
doc: [Object] } ] }
我在服务器端使用NodeJS创建了上面的代码。但是,如果您想通过浏览器内的HTTPS
与CouchDB进行通信,即在客户端,则必须enable CORS on CouchDB。
答案 1 :(得分:0)
所以经过一些搜索后,从this topic可以清楚地看出,PocuhDB-Server不支持HTTPS。