0

我尝试从aws-sdk中使用Amazons DocumentClient for AWS.dynamodb。我还使用Amazon的标准node.js VM:“运行Node.js的64位Amazon Linux 2016.09 v4.0.1”。TypeError:AWS.DynamoDB.DocumentClient不是构造函数

在我的本地机器一切正常,但我得到了以下错误消息直播:

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'}); 

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

在我的本地机器上,它的工作没有问题。我可以连接到实时服务器或本地开发服务器,而不会出错。

AWS.dynamodb没有DocumentClient也在工作现场的服务器上,所以我想一个选择是将产品总数下降DocumentClient。

我有一个使用最新的AWS-SDK中的package.json:

{ 
    "name": "", 
    "version": "0.0.1", 
    "private": true, 
    "dependencies": { 
    "aws-sdk": "latest", 
[...] 

我最好的猜测是,什么是错与节点包。我如何检查我的假设,如果是正确的,改变它的一些事情?

+2

我的是' “AWS-SDK”: “^ 2.2.15”'和'新AWS.DynamoDB.DocumentClient()'作品。另外,请检查文件中是否存在'const AWS = require('aws-sdk')'。 –

+0

对不起,迟到的答案! 我的行'const AWS = require('aws-sdk')'。 我在运行'npm install'后设法破坏了我的本地设置,现在得到相同的错误,至少我现在可以尝试修复它。 :-) – mo1

回答

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!

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