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!

我希望我不會違反任何規則回答我自己的問題。