类型错误:AWS.DynamoDB.DocumentClient 不是构造函数

mo1*_*mo1 4 javascript amazon-web-services node.js amazon-dynamodb amazon-elastic-beanstalk

我尝试使用 AWS-sdk 中的 Amazon DocumentClient for AWS.dynamodb。我还使用 Amazon 的标准 node.js VM:“64 位 Amazon Linux 2016.09 v4.0.1 运行 Node.js”。

在我的本地计算机上,一切正常,但我收到以下错误消息:

TypeError: AWS.DynamoDB.DocumentClient is not a constructor
Run Code Online (Sandbox Code Playgroud)

这是导致错误的行:

var docClient = new AWS.DynamoDB.DocumentClient();
Run Code Online (Sandbox Code Playgroud)

我还尝试了各种教程使用的不同版本,但也失败了:

var docClient = new AWS.DynamoDB.DocumentClient({region: "eu-central-1"});

var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'});
Run Code Online (Sandbox Code Playgroud)

我尝试非常精确地遵循本指南: https://aws.amazon.com/de/blogs/developer/announcing-the-amazon-dynamodb-document-client-in-the-aws-sdk-for-javascript/

在我的本地机器上它工作没有问题。我可以毫无错误地连接到实时服务器或本地开发服务器。

没有 DocumentClient 的 AWS.dynamodb 也在实时服务器上工作,所以我想一种选择是完全删除 DocumentClient。

我有一个使用最新 aws-sdk 的 package.json:

{
  "name": "",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "aws-sdk": "latest",
[...]
Run Code Online (Sandbox Code Playgroud)

我最好的猜测是,节点包有问题。我如何检查我的假设,如果正确,请更改它?

mo1*_*mo1 6

我找到了解决方案!@SwarajGiri 建议使用 aws-sdk 版本 2.2.15,指出了正确的方向。

我的问题是我的文件夹中有一个npm-shrinkwrap.json并且不知道它推翻了 package.json。npm-shrinkwrap.json 中的 aws-sdk 版本为 2.1.39,其中不包含 documentClient()。文档客户端在2.2.0版本中引入

请注意,我遵循的Node.js Elastic Beantalk 与 DynamoDB 教程包含这个有点过时的 npm-shrinkwrap.json!

我希望我回答自己的问题不会违反任何规则。