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