2017-08-02 47 views
0

我剛剛通過腳本處理數據庫,因此我正在學習如何使用HTML和JavaScript訪問DynamoDB的this教程。我成功創建了電影表並添加了一個項目,但是我在閱讀該項目時遇到了錯誤。以下是使用我的憑據讀取項目的示例腳本。Amazon DynamoDB在瀏覽器JavaScript中使用的網絡錯誤

<html> 
<head> 
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.7.16.min.js"> 
</script> 

<script> 
AWS.config.update({ 
    region: "us-east-2", 
    endpoint: 'http://localhost:8000', 
    accessKeyId: "...", 
    secretAccessKey: "..." 
}); 

var docClient = new AWS.DynamoDB.DocumentClient(); 

function readItem() { 
    var table = "Movies"; 
    var year = 2015; 
    var title = "The Big New Movie"; 

    var params = { 
     TableName: table, 
     Key:{ 
      "year": year, 
      "title": title 
     } 
    }; 
    docClient.get(params, function(err, data) { 
     if (err) { 
      document.getElementById('textarea').innerHTML = "Unable to read item: " + "\n" + JSON.stringify(err, undefined, 2); 
     } else { 
      document.getElementById('textarea').innerHTML = "GetItem succeeded: " + "\n" + JSON.stringify(data, undefined, 2); 
     } 
    }); 
} 

</script> 
</head> 

<body> 
<input id="readItem" type="button" value="Read Item" onclick="readItem();" /> 
<br><br> 
<textarea readonly id= "textarea" style="width:400px; height:800px"> 
</textarea> 

</body> 
</html> 

點擊在HTML文件中的按鈕後,我得到這個錯誤:

Unable to read item: 
{ 
    "message": "Network Failure", 
    "code": "NetworkingError", 
    "time": "2017-08-02T14:32:36.416Z", 
    "region": "us-east-2", 
    "hostname": "localhost", 
    "retryable": true 
} 

我自己也嘗試查詢與和演示代碼掃描,我也得到了相同的結果。我唯一的想法是本地主機端口可能不正確,但我不知道如何檢查我可以使用的端口。我還閱讀了一些關於類似問題的論壇主題,但他們使用了另一個Amazon Web服務的數據庫。任何其他幫助,將不勝感激!

回答

0

請確保DynamoDB正在本地計算機上運行。請參閱page

1)運行DynamoDB本地

2)請確保您有表稱爲Movies與存在於HTML中的鍵值。然後,你應該得到你的文本區域的數據

我測試了代碼。這對我來說可以。

+0

有什麼辦法可以在沒有本地版本的DynamoDB的情況下進行此項工作? –

+0

您需要連接到AWS上運行的Dynamodb local或dynamodb。否則,你會從哪裏得到數據? – notionquest

+0

噢,因爲端點必須是本地獲取請求,你需要本地版本的數據庫,所以在某種程度上我沒有意識到這一點,謝謝! –

相關問題