곧 AWS SDK for JavaScript(v2)에 대한 지원이 종료될 예정임을 알려드립니다
응답 객체 사용
서비스 객체 메서드가 호출되면 해당 메서드는 콜백 함수에 자신을 전달해 AWS.Response
객체를 반환합니다. AWS.Response
객체의 속성을 통해 응답 내용에 액세스합니다. 응답 내용에 액세스하는 데 사용할 수 있는 AWS.Response
객체의 속성은 다음과 같이 두 가지가 있습니다.
-
data
속성 -
error
속성
표준 콜백 메커니즘을 사용하는 경우 이러한 두 가지 속성은 다음 예에서처럼 익명 콜백 함수에 대한 파라미터로 제공됩니다.
function(error, data) { if (error) { // error handling code console.log(error); } else { // data handling code console.log(data); } }
응답 객체에서 반환된 데이터에 액세스
AWS.Response
객체의 data
속성에는 서비스 요청에서 반환되는 직렬화된 데이터가 포함되어 있습니다. 요청에 성공하면 data
속성에는 반환되는 데이터에 대한 맵을 포함하는 객체가 들어 있습니다. 오류가 발생하면 data
속성이 null일 수 있습니다.
다음은 게임의 일부로 사용할 이미지 파일의 이름을 검색하기 위해 DynamoDB 테이블의 getItem
메서드를 호출하는 예제입니다.
// Initialize parameters needed to call DynamoDB var slotParams = { Key : {'slotPosition' : {N: '0'}}, TableName : 'slotWheels', ProjectionExpression: 'imageFile' }; // prepare request object for call to DynamoDB var request = new AWS.DynamoDB({region: 'us-west-2', apiVersion: '2012-08-10'}).getItem(slotParams); // log the name of the image file to load in the slot machine request.on('success', function(response) { // logs a value like "cherries.jpg" returned from DynamoDB console.log(response.data.Item.imageFile.S); }); // submit DynamoDB request request.send();
이 예제의 경우 DynamoDB 테이블은 슬롯 머신을 당긴 결과를 slotParams
의 파라미터가 지정한 대로 보여주는 이미지 조회 테이블입니다.
getItem
메서드 호출에 성공하면 AWS.Response
객체의 data
속성에는 DynamoDB에서 반환한 Item
객체가 포함되어 있습니다. 반환된 데이터는 요청의 ProjectionExpression
파라미터에 따라 액세스되는데, 이번 경우에서 이 파라미터는 Item
객체의 imageFile
멤버입니다. imageFile
멤버가 문자열 값을 가지고 있기 때문에 imageFile
의 S
하위 멤버 값을 통해 이미지의 파일 이름에 액세스합니다.
반환된 데이터를 통해 페이징
경우에 따라 서비스 요청에서 반환하는 data
속성의 내용이 여러 페이지에 걸쳐 있을 수 있습니다. response.nextPage
메서드를 호출하여 데이터의 다음 페이지에 액세스할 수 있습니다. 이 메서드는 새 요청을 보냅니다. 이 요청에 대한 응답은 콜백 또는 성공 및 오류 리스너를 사용해 캡처할 수 있습니다.
response.hasNextPage
메서드를 호출하여 서비스 요청에서 반환한 데이터에 추가 페이지가 있는지 확인할 수 있습니다. 이 메서드는 부울을 반환하여 response.nextPage
호출 시 추가 데이터를 반환하는지 여부를 나타냅니다.
s3.listObjects({Bucket: 'bucket'}).on('success', function handlePage(response) { // do something with response.data if (response.hasNextPage()) { response.nextPage().on('success', handlePage).send(); } }).send();
응답 객체에서 오류 정보에 액세스
AWS.Response
객체의 error
속성에는 서비스 오류 또는 전송 오류 이벤트 발생 시 확인 가능한 오류 데이터가 포함되어 있습니다. 오류는 다음과 같은 양식으로 반환됩니다.
{ code: 'SHORT_UNIQUE_ERROR_CODE', message: 'a descriptive error message' }
오류 발생 시 data
속성의 값은 null
입니다. 실패 상태일 수 있는 이벤트를 처리하는 경우에는 data
속성 값에 액세스하려고 시도하기 전에 error
속성을 설정했는지 항상 확인하십시오.
발신 요청 객체에 액세스
request
속성은 발신 AWS.Request
객체에 대한 액세스를 제공합니다. 이는 원래 AWS.Request
객체가 보낸 원래 파라미터에 액세스하기 위해 해당 객체를 참조하는 경우 유용합니다. 다음 예제에서 request
속성은 원래 서비스 요청의 Key
파라미터에 액세스하는 데 사용됩니다.
s3.getObject({Bucket: 'bucket', Key: 'key'}).on('success', function(response) { console.log("Key was", response.request.params.Key); }).send();