0

Während durch this AWS tutorial Surfen, bemerkte ich diesen Code Beispiel:Warum enthält das Beispiel von AWS Lambda Node.js JavaScript-Objekte mit Schlüsseln wie "S:" und "N:"?

// define JSON used to format Lambda function response 
var slotResults = { 
    'isWinner' : false, 
    'leftWheelImage' : {'file' : {S: ''}}, 
    'middleWheelImage' : {'file' : {S: ''}}, 
    'rightWheelImage' : {'file' : {S: ''}} 
}; 

// define JSON for making getItem calls to the slotWheels DynamoDB table  
var thisPullParams = { 
    Key : {'slotPosition' : {N: ''}}, 
    TableName: 'slotWheels', 
    ProjectionExpression: 'imageFile' 
}; 

Später werden diese Aufgaben in einer Weise, so benutzt:

// assign resolved promise values to returned JSON 
    slotResults.leftWheelImage.file.S = values[0]; 

Es ist wie das aussieht "S:" und „N: "werden verwendet, um den Typ des folgenden Werts zu bezeichnen. Warum wird das gemacht? Hat diese Konvention einen Namen und eine Definition?

Antwort

0

Gefunden meine Antwort ... Dies sind DynamoDB data type descriptors. Sie sind Metadaten, die bei der Verwendung der Low-Level-Dynamo-API einbezogen werden müssen. In diesem Beispiel ist es verwirrend, da keine Übergabe von slotResults an Dynamo angezeigt wird. Sie müssen der Dynamo-Konvention für stilistische Konsistenz gefolgt sein.

+1

Ich glaube nicht, dass sie nur diese Konvention für stilistische Konsistenz befolgen. Sie verwenden in diesem Beispiel tatsächlich DynamoDB, und sie müssten die Objekte auf diese Weise erstellen, wenn sie sie in DynamoDB einfügen möchten. –