簡體   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