【问题标题】:How to use DocumentDB behind a Proxy in NodeJS如何在 NodeJS 中的代理后面使用 DocumentDB
【发布时间】:2018-12-27 18:00:42
【问题描述】:

在 NodeJS 中,我正在尝试使用 Documentdb 库连接到 Cosmos DB,正如 azure 文档的入门者在 TODO 列表示例中所说的那样。 Tutorial Here

如果我使用不在代理后面的 Internet,它就可以工作。

这是连接代码:

var DocumentDBClient = require('documentdb').DocumentClient;

var docDbClient = new DocumentDBClient(config.host, {
    masterKey: config.authKey
});

但是当我在代理后面时,连接永远不会发生。我收到“错误:连接 ETIMEDOUT”

在其他节点JS应用中,如果我想发出一个webservice的请求,我只需为请求配置代理即可。例如请求:

request = require('request').defaults({
  proxy:'http://USERNAME:PASSWORD@proxy.url.com:8080',
});

有没有办法在 DocumentDB 中配置代理以连接到 Azure (NodeJS) 中的数据库?

【问题讨论】:

    标签: node.js azure azure-cosmosdb


    【解决方案1】:

    我没有亲自尝试过,但是我正在浏览SDK的源代码,发现ConnectionPolicy有一个名为ProxyUrl的参数。您可以尝试以下方法吗:

    var connectionPolicy = new DocumentBase.ConnectionPolicy();
    connectionPolicy.ProxyUrl = 'http://USERNAME:PASSWORD@proxy.url.com:8080';
    var docDbClient = new DocumentDBClient(config.host, {
        masterKey: config.authKey
    }, connectionPolicy);
    

    【讨论】:

    • 我用正确的代理 url 添加了这一行,但不起作用。仍然有同样的问题和超时问题
    • 对不起....我的错!您实际上需要创建ConnectionPolicy 的实例并将其传递给DocumentDBClient 的构造函数。我已经用修改后的代码更新了我的答案。你能试试吗。您可能需要导入(或要求)DocumentBase
    猜你喜欢
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 2018-08-01
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多