Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Couchdb和PockDB不在同一位置存储信息_Javascript_Node.js_Couchdb_Pouchdb - Fatal编程技术网

Javascript Couchdb和PockDB不在同一位置存储信息

Javascript Couchdb和PockDB不在同一位置存储信息,javascript,node.js,couchdb,pouchdb,Javascript,Node.js,Couchdb,Pouchdb,我对couchdb/PockDB有点困惑 这是我的设置 我正在运行couchdb来启动并运行它 为了确认我运行了这个命令,curl localhost:5984,它就可以工作了 导航到http://localhost:5984/_utils/index.html,请参见以下内容: 然后我使用节点和数据库连接并插入一个文档 var PouchDB = require('pouchdb') var test = new PouchDB('test') test.info() .then(func

我对couchdb/PockDB有点困惑

这是我的设置

我正在运行
couchdb
来启动并运行它

为了确认我运行了这个命令,
curl localhost:5984
,它就可以工作了

导航到
http://localhost:5984/_utils/index.html
,请参见以下内容:

然后我使用
节点
数据库
连接并插入一个文档

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)
我运行了这个
节点index.js
,得到了两者的ok响应

我检查了
couchdb
admin(上图),发现它没有改变。似乎没有保存任何数据

我查看node projects目录,看到有一个
test
文件夹。Pocket认为数据库目录是本地的,而
couchdb
目录在其他地方,这肯定是有问题的

要知道coach在哪里存储信息,我运行
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
我不明白where
couchdb
认为数据库在哪里,而where
couchdb
认为数据库在哪里,两者之间的联系是如何或为什么不同的

如何修复此问题,并使
backdb
使用为
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)

我认为你还不了解数据库的工作方式。当您以自己的方式在节点中运行它时,它将用作后端。它在您的项目的测试目录中编写一个数据文件(我想知道如果您在那里进行测试会发生什么!)

它根本不与couchbase服务器通信

如果在构造函数中将uri传递给coach服务器,您将与couchbase实例对话:

var remoteDB = new PouchDB('http://localhost:5984/myremotedb')

太棒了,非常感谢你,完美的解释。我以为它会自动连接到本地主机服务器。@ThomasReggi PockDB可以在没有任何couchdb实例的情况下工作,当您以这种方式配置它时,它将允许它与couchdb同步,但从技术上讲,PockDB本身就是javascript中的couchdb服务器。