PouchDB - "Database encountered an unknown error" 尝试连接到 CouchDB 时
PouchDB - "Database encountered an unknown error" when trying to connect to CouchDB
我正在尝试设置 pouchDB 同步,但我在远程连接到 couchDB 时遇到问题...我已按照 these instructions from couchDB 安装到我的 ubunto 服务器上 - 这是由 laravel 管理的forge...虽然这个项目本身没有使用 laravel(只是一个普通的 html 文件)
一切都已正确安装,并得到所有预期的响应
如果我运行: curl localhost:5984
我得到:{"couchdb":"Welcome","uuid":"*******************","version":"1.6.1","vendor":{"version":"14.04","name":"Ubuntu"}}
我运行:npm install -g add-cors-to-couchdb
和add-cors-to-couchdb
而且我没有收到任何跨域错误
但如果我尝试去 http://178.xx.xxx.xxx:5984/_utils 它只是挂起?
使用以下代码时:
var localdb = new PouchDB('messages');
var remotedb = new PouchDB('http://178.xx.xx.xx:5984/messages');
localdb.sync(remotedb, {live: true});
我得到:
Unhandled promise rejection
Promise
{
[[PromiseStatus]]: "rejected",
[[PromiseValue]]: o
}
__proto__: Promise
[[PromiseStatus]]: "rejected"
[[PromiseValue]]: o
error: true
message: "Database encountered an unknown error"
name: "unknown_error"
status: 500
(取自chrome)
知道我为什么会收到此错误吗?它似乎超时了……。知道为什么要这样做吗?
另外如果我使用:ssh -L5984:127.0.0.1:5984 forge@178.xx.xx.xx
然后转到http://localhost:5984/_utils/
它工作正常
同时将远程地址替换为 http://localhost:5984/messages
也可以使同步工作
在使用它的同时,我还使用 "Verify Installation" 检查了所有安装是否正确,然后返回 "Your installation looks fine. Time to Relax."
St运行ge!
那么有人知道为什么我无法远程连接到 couchDB 吗?
如有任何帮助,我们将不胜感激!
谢谢,
戴夫
听起来您需要为您的 CouchDB 修改 local.ini
文件,以允许从更多 IP 进行访问,而不仅仅是本地主机。
检查您的 local.ini
此部分:
[httpd]
;port = 5984
;bind_address = 127.0.0.1
将其更改为:
[httpd]
;port = 5984
bind_address = 0.0.0.0
编辑:一个更简单的解决方案是设置您的 Nginx/Apache 代理以将 http://example.com/couchdb 路由到 localhost:5984。这是我使用的 Nginx 配置:
location /couchdb {
rewrite /couchdb(.*) break;
proxy_pass http://127.0.0.1:5984;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
我正在尝试设置 pouchDB 同步,但我在远程连接到 couchDB 时遇到问题...我已按照 these instructions from couchDB 安装到我的 ubunto 服务器上 - 这是由 laravel 管理的forge...虽然这个项目本身没有使用 laravel(只是一个普通的 html 文件)
一切都已正确安装,并得到所有预期的响应
如果我运行: curl localhost:5984
我得到:{"couchdb":"Welcome","uuid":"*******************","version":"1.6.1","vendor":{"version":"14.04","name":"Ubuntu"}}
我运行:npm install -g add-cors-to-couchdb
和add-cors-to-couchdb
而且我没有收到任何跨域错误
但如果我尝试去 http://178.xx.xxx.xxx:5984/_utils 它只是挂起?
使用以下代码时:
var localdb = new PouchDB('messages');
var remotedb = new PouchDB('http://178.xx.xx.xx:5984/messages');
localdb.sync(remotedb, {live: true});
我得到:
Unhandled promise rejection
Promise
{
[[PromiseStatus]]: "rejected",
[[PromiseValue]]: o
}
__proto__: Promise
[[PromiseStatus]]: "rejected"
[[PromiseValue]]: o
error: true
message: "Database encountered an unknown error"
name: "unknown_error"
status: 500
(取自chrome)
知道我为什么会收到此错误吗?它似乎超时了……。知道为什么要这样做吗?
另外如果我使用:ssh -L5984:127.0.0.1:5984 forge@178.xx.xx.xx
然后转到http://localhost:5984/_utils/
它工作正常
同时将远程地址替换为 http://localhost:5984/messages
也可以使同步工作
在使用它的同时,我还使用 "Verify Installation" 检查了所有安装是否正确,然后返回 "Your installation looks fine. Time to Relax."
St运行ge!
那么有人知道为什么我无法远程连接到 couchDB 吗?
如有任何帮助,我们将不胜感激!
谢谢, 戴夫
听起来您需要为您的 CouchDB 修改 local.ini
文件,以允许从更多 IP 进行访问,而不仅仅是本地主机。
检查您的 local.ini
此部分:
[httpd]
;port = 5984
;bind_address = 127.0.0.1
将其更改为:
[httpd]
;port = 5984
bind_address = 0.0.0.0
编辑:一个更简单的解决方案是设置您的 Nginx/Apache 代理以将 http://example.com/couchdb 路由到 localhost:5984。这是我使用的 Nginx 配置:
location /couchdb {
rewrite /couchdb(.*) break;
proxy_pass http://127.0.0.1:5984;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}