0

aws-sdkからAWS.dynamodb用にAmazons DocumentClientを使用しようとしています。 Amazonの標準node.js VM、「64bit Amazon Linux 2016.09 v4.0.1 Node.js」も使用しています。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'}); 

私はフォールドしようとしましたこのガイドは非常に正確です。 https://aws.amazon.com/de/blogs/developer/announcing-the-amazon-dynamodb-document-client-in-the-aws-sdk-for-javascript/

私のローカルマシンでは問題なく動作します。ライブサーバーまたはローカルのdev-serverにエラーなく接続できます。

DocumentClientのないAWS.dynamodbもライブサーバー上で動作していたので、DocumentClientをすべてドロップするオプションが1つあると思います。

私は、最新のAWS-SDKを使用していますpackage.jsonを持っている:

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

私の最高の推測では、何かがノードパッケージに問題があること、です。私の仮定を確認するにはどうすればいいですか?

+2

マインは '" aws-sdk ":"^2.2.15 "'で、 'new 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が含まれています。

私は自分の質問に答えてルールを破ることはできません。

関連する問題