[英]Couchdb and pouchdb are not storing info in the same place
我对couchdb / pouchdb有点困惑。
这是我的设置。
我正在运行couchdb
来启动它。
为了确认我运行它, curl localhost:5984
,它的工作原理。
导航到http://localhost:5984/_utils/index.html
并看到:
然后我使用node
和pouchdb
连接并插入doc。
var PouchDB = require('pouchdb')
var test = new PouchDB('test')
test.info()
.then(function (info) {
console.log(info)
})
.catch(console.error)
test.put({
'_id': '308',
'hello': 'world'
})
.then(console.log)
.catch(console.error)
我运行这个node index.js
并获得两个ok响应。
我检查了couchdb
管理员(上面)并看到它没有改变。 似乎没有保存数据。
我查看节点项目目录,看到有一个test
文件夹。 必须存在一些问题,即pouch认为数据库目录是本地的,而couchdb
目录是其他地方。
要找出沙发存储信息的位置,我运行couchdb -c
$ couchdb -c
/usr/local/etc/couchdb/default.ini
/usr/local/etc/couchdb/local.ini
这给了我配置文件的位置。
我可以在default.ini
看到:
database_dir = /usr/local/var/lib/couchdb
view_index_dir = /usr/local/var/lib/couchdb
我不明白为什么或者为什么在couchdb
认为db之间的连接和pouchdb
认为它之间的连接是不同的。
我该如何解决这个问题,并使pouchdb
使用为couchdb
指定的目录?
更新:
刚试过这个,我仍然没有在couchdb
界面中看到它。
var PouchDB = require('pouchdb')
// var test = new PouchDB('test')
var MyPrefixedPouch = PouchDB.defaults({
prefix: '/usr/local/var/lib/couchdb'
});
var test = new MyPrefixedPouch('test');
test.info().then(function (info) {
console.log(info)
})
test.put({
'_id': '308',
'hello': 'world'
})
.then(console.log)
.catch(console.error)
我不认为你已经理解了pouchdb的工作方式。 当你在节点中以它的方式运行它时,它使用leveldb作为后端。 它正在你的项目的测试目录中写一个数据文件(我想知道如果你在那里进行测试将会发生什么!)。
它根本不与您的couchbase服务器通信。
如果您将uri传递给构造函数中的沙发服务器,您将与您的couchbase实例通信:
var remoteDB = new PouchDB('http://localhost:5984/myremotedb')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.