繁体   English   中英

如何使pouchdb cloudant复制与node.js / express代理一起工作?

[英]How to make pouchdb cloudant replication work with node.js/express proxy?

我无法使PouchDB Cloudant复制通过代理(express / node.js服务器和node-http-proxy)工作。 想为此添加访问控制。

复制无需代理即可工作:

PouchDB-> Cloudant( https://account:password@account.cloudant.com/testdb

复制失败并使用代理:

PouchDB->快速代理( http://localhost:3000/proxy )-> Cloudant( https://account:password@account.cloudant.com/testdb

error: CustomPouchError

代理

const httpProxy = require("http-proxy");
const proxy = httpProxy.createProxyServer();

router.all("/proxy", (req, res, next) => {
  proxy.on("proxyReq", (proxyReq, req, res, options) => {
    proxyReq.setHeader("Authorization", "Basic: Base64(account:password)")
  })

  proxy.web(req, res, {
    target: "https://account:password@account.cloudant.com/testdb",
    secure: false,
    changeOrigin: true
  });
});

PouchDB

// succeeds without proxy
localDB.replicate
  .to("https://account:password@account.cloudant.com/testdb")
  .on('error', err => {
    console.log('error', err);
  });

// fails with proxy
localDB.replicate
  .to("http://localhost:3000/proxy")
  .on('error', err => {
    console.log('error', err);
  });

真的卡住了! 非常感谢您对任何错误或如何通过代理实现pouchdb cloudant复制的任何想法。 谢谢!

您的代码正在尝试使用代理本身进行复制。 代理不是目标服务器,这就是为什么您会收到错误消息。 如果Express中的代理设置正确,则应该能够与目标服务器进行复制,并且代理设置应控制连接,而无需在应用程序中添加任何代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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