TypeError:AWS.DynamoDB.DocumentClient 不是构造函数

Posted

技术标签:

【中文标题】TypeError:AWS.DynamoDB.DocumentClient 不是构造函数【英文标题】:TypeError: AWS.DynamoDB.DocumentClient is not a constructor 【发布时间】:2017-09-13 20:36:30 【问题描述】:

我尝试使用来自 aws-sdk 的 AWS.dynamodb 的 Amazons DocumentClient。我还使用来自 Amazon 的 Standard node.js VM:“64bit Amazon Linux 2016.09 v4.0.1 running Node.js”。

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

TypeError: AWS.DynamoDB.DocumentClient is not a constructor

这是导致错误的行:

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

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

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

var docClient = new AWS.DynamoDB.DocumentClient(apiVersion: '2012-08-10');

我尝试非常精确地遵循本指南: 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",
[...]

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

【问题讨论】:

我的是 "aws-sdk": "^2.2.15"new AWS.DynamoDB.DocumentClient() 作品。另外,检查文件中是否有const AWS = require('aws-sdk') 抱歉回复晚了!我确实有const AWS = require('aws-sdk') 这条线。我在运行npm install 后设法破坏了我的本地设置,现在得到了同样的错误,至少我现在可以尝试在那里修复它。 :-) 【参考方案1】:

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

我的问题是我的文件夹中有一个 npm-shrinkwrap.json 并且不知道它否决了 package.json。 npm-shrinkwrap.json 中的 aws-sdk 版本是 2.1.39,不包括 documentClient()。 Document Client was introduced in version 2.2.0

请注意,我关注的 node.js Elastic Beantalk with DynamoDB tutorial 包含这个有点过时的 npm-shrinkwrap.json!

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

【讨论】:

以上是关于TypeError:AWS.DynamoDB.DocumentClient 不是构造函数的主要内容,如果未能解决你的问题,请参考以下文章

反应本机获取多标记[未处理的承诺拒绝:TypeError:TypeError:未定义不是对象(评估'this.state.markers.map

Django TypeError - TypeError: issubclass() arg 1 必须是一个类

pyspark:TypeError:'float'对象不可迭代

Python 3.8 TypeError: can't concat str to bytes - TypeError: a bytes-like object is required, not 's

TypeError: key 必须是一个字符串,一个缓冲区或一个对象在 typeError 与 GCP 文件存在

TypeError: jQueryxxxxxx 不是函数