【问题标题】:Where should I define the DocumentClient when using ExpressJs?使用 ExpressJs 时应该在哪里定义 DocumentClient?
【发布时间】:2019-05-17 16:32:44
【问题描述】:

我找不到我想知道的问题的答案。

在 Expressjs 中使用 Mysql,当我在后处理函数中声明 MySQL 连接时,它会在我的 ExpressJs 服务器每次收到请求时创建一个新连接。然后,当处理服务器和数据库服务器之间建立最大连接数时,服务器会抛出错误。

我想知道 DynamoDB.DocumentClient() 是否存在同样的问题?使用 DynamoDB 进行操作的最佳方式是什么?

我应该有如下全局 DocumentClient,还是将它留在 post/get 函数中可以吗?

...
// DocumentClient is out of the post function below
const docClient = new AWS.DynamoDB.DocumentClient();

router.post('/loglogbaby', function(req, res){
    var params = { ... };

    docClient.get(params, function(err,data){...});

    req.json({response:"nonobaby"});
}
...

【问题讨论】:

    标签: node.js amazon-web-services express amazon-dynamodb


    【解决方案1】:

    这没关系,因为 DynamoDB 在后面处理 HTTP 请求而不是连接和池等。DocumentClient 在最后创建一个 HTTP 请求。它是一个使low level api 更容易的库。 (See here)。

    所以基本上你每次创建它时都会创建一个编程级别的对象。不是新的连接。而且对象的创建成本很低。

    【讨论】:

      【解决方案2】:

      由于 AWS DynamoDB 已经是托管服务,因此在哪里创建 DocumentClient 对象没有问题。 如果您为它创建一个全局对象,这是一个很好的做法。

      您可以找到here MySQL 和 DyanmoDB 的比较。

      【讨论】:

        猜你喜欢
        • 2014-08-14
        • 1970-01-01
        • 2020-09-13
        • 2019-06-07
        • 2020-02-20
        • 1970-01-01
        • 1970-01-01
        • 2017-01-20
        • 1970-01-01
        相关资源
        最近更新 更多