[英]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.