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를 한꺼번에 삭제할 수있는 옵션이 있다고 생각합니다. 뭔가 노드 패키지에 이상이 있음을,

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

내 추측은 다음과 같습니다

나는 최신 AWS-SDK를 사용하는 package.json 있습니다. 내 가정을 확인하려면 어떻게해야합니까?

+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이 포함되어 있습니다.

나는 내 자신의 질문에 답하여 규칙을 위반하지 않기를 바랍니다.

관련 문제