繁体   English   中英

Couchdb和pouchdb不在同一个地方存储信息

[英]Couchdb and pouchdb are not storing info in the same place

我对couchdb / pouchdb有点困惑。

这是我的设置。

我正在运行couchdb来启动它。

为了确认我运行它, curl localhost:5984 ,它的工作原理。

导航到http://localhost:5984/_utils/index.html并看到:

CouchDB的管理员

然后我使用nodepouchdb连接并插入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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM