2016-05-06 31 views
1

我試圖與DynamoDB競爭節點js亞馬遜開始指南。我試圖創建一個表,但這裏是錯誤我已經:DynamoDB和節點Js:意外的令牌h

Unable to create table. Error JSON: { 
    "message": "Unexpected token h", 
    "code": "SyntaxError", 
    "time": "2016-05-06T16:59:50.411Z", 
    "statusCode": 200, 
    "retryable": false, 
    "retryDelay": 0 

我正在以下節點(直接從亞馬遜入門指南拍攝):

var AWS = require("aws-sdk"); 
AWS.config.loadFromPath('./.aws/credentials.json'); 

AWS.config.update({ 
    region: "us-west-2", 
    endpoint: "http://localhost:8000" 
}); 

var dynamodb = new AWS.DynamoDB(); 

var params = { 
    TableName : "Movies", 
    KeySchema: [  
     { AttributeName: "year", KeyType: "HASH"}, //Partition key 
     { AttributeName: "title", KeyType: "RANGE" } //Sort key 
    ], 
    AttributeDefinitions: [  
     { AttributeName: "year", AttributeType: "N" }, 
     { AttributeName: "title", AttributeType: "S" } 
    ], 
    ProvisionedThroughput: {  
     ReadCapacityUnits: 10, 
     WriteCapacityUnits: 10 
    } 
}; 

dynamodb.createTable(params, function(err, data) { 
    if (err) { 
     console.error("Unable to create table. Error JSON:", JSON.stringify(err, null, 2)); 
    } else { 
     console.log("Created table. Table description JSON:", JSON.stringify(data, null, 2)); 
    } 
}); 

我已經根據本教程在端口8080上運行本地Web服務器:https://www.youtube.com/watch?v=pU9Q6oiQNd0。它似乎工作正常。

謝謝。

+0

我會檢查'./ AWS/credentials.json'是有效的JSON(雙引號屬性名稱等) –

+0

感謝。這裏是我在那裏: {「accessKeyId」:「XXXXXXXXXXXXX」,「secretAccessKey」:「XXXXXXXXXXXXXXXXXXXXXXX」,「region」:「us-east-1」} –

回答

4

您正在將AWS端點設置爲http://localhost:8000。這使得AWS開發工具包可以將AWS API調用發送到該URL,而不是Amazon的服務器。你確定這就是你想要的嗎?除非您在本地運行DynamoDB版本,否則會向您自己的服務器請求每個DynamoDB請求,並嘗試將結果解釋爲JSON。

SDK通常會根據地區正確設置端點,因此通常不需要手動設置端點。嘗試沒有終點設置配置AWS:

AWS.config.update({ 
    region: "us-west-2" 
}); 
+1

感謝ataylor。是的,我在端口8000上本地運行DynamoDB。我正在一步步跟着亞馬遜教程...只是試圖學習。 –