【问题标题】:Does DynamoDB require multiple JS files to be run simultaneously?DynamoDB 是否需要同时运行多个 JS 文件?
【发布时间】:2021-11-19 16:25:03
【问题描述】:

如果这是一个基本问题,我们深表歉意;我是网络开发的新手。我一直在尝试使用 NodeJS 和 AWS DynamoDB 设置 Web 服务器。

我注意到在许多教程中,命令new AWS.DynamoDB();new AWS.DynamoDB.DocumentClient(); 位于两个不同的.js 文件中(例如,教程here)。

这些文件是要同时运行的吗?显然数据库应该在调用之前设置好,但是所有教程都只是说“运行这个文件”然后“运行这个文件”,我不确定它如何应用于生产设置。

我没有看到任何 requireimport 声明。

【问题讨论】:

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


【解决方案1】:

当您使用 AWS.DynamoDB.DocumentClient() 时,它通过抽象出属性值的概念来简化对 Amazon DynamoDB 中项目的处理。这种抽象对作为输入参数提供的原生 JavaScript 类型进行注释,并将带注释的响应数据转换为原生 JavaScript 类型。

一个简单的例子是:

var params = {
    Item: {
        "Item1": "Value 1",
        "Item2": "Value 1",
    },
    TableName: "Example"
};

var documentClient = new AWS.DynamoDB.DocumentClient();

documentClient.put(params, function (err, data) {
    if (err) console.log(err);
    else console.log(data);
});

但是,当您使用 new AWS.DynamoDB() 使用 dynamodb 客户端时,您需要传递类型和其他概念。一个简单的例子是:

var params = {
    Item: {
        "Item1": { 
             "S" : "Value 1",
         },
        "Item2": {
             "N": 1000,
         }
    },
    TableName: "Example"
};

var documentClient = new AWS.DynamoDB.DocumentClient();

documentClient.put(params, function (err, data) {
    if (err) console.log(err);
    else console.log(data);
});

根据 DocumentClient 的announcement

文档客户端抽象使得读取和写入数据更容易 使用适用于 JavaScript 的 AWS 开发工具包到 Amazon DynamoDB。现在你可以使用 本机 JavaScript 对象,没有将它们注释为 AttributeValue 类型。

DynamoDB 是否需要同时运行多个 JS 文件?

不,你不需要。

【讨论】:

  • 我还是有点困惑。如果我们不需要同时运行多个 JS 文件,在实际客户端调用之前如何设置数据库?
  • 创建多个 JS 文件为您提供模块化架构。您也可以将其写入单个文件。您从 dynamodb 实例中选择的客户端是您与之交互的选择。设置 db- 只是创建一个连接来执行 CRUD。
猜你喜欢
  • 2020-01-01
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 2016-08-15
  • 2014-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多