Uso del objeto de respuesta - AWS SDK for JavaScript

Anunciamos el próximo fin del soporte para AWS SDK for JavaScript v2. Se recomienda que migre a AWS SDK for JavaScript v3. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

Uso del objeto de respuesta

Después de llamar a un método objeto de servicio, este devuelve un objeto AWS.Response transfiriéndolo a su función de devolución de llamada. Puede obtener acceso al contenido de la respuesta a través de las propiedades del objeto AWS.Response. Puede usar dos propiedades del objeto AWS.Response para obtener acceso al contenido de la respuesta:

  • Propiedad data

  • Propiedad error

Cuando se utiliza el mecanismo de devolución de llamada estándar, estos dos propiedades se proporcionan como parámetros en la función de devolución de llamada anónima tal y como se muestra en el siguiente ejemplo.

function(error, data) { if (error) { // error handling code console.log(error); } else { // data handling code console.log(data); } }

Acceso a los datos devueltos en el objeto de respuesta

La propiedad data del objeto AWS.Response contiene los datos serializados devueltos por la solicitud de servicio. Cuando la solicitud se realiza correctamente, la propiedad data incluye un objeto que contiene un mapa a los datos devueltos. La propiedad data puede ser un valor nulo si se produce un error.

A continuación se muestra un ejemplo llamada al método getItem de una tabla de DynamoDB para recuperar el nombre de un archivo de imagen y utilizarlo como parte de un juego.

// 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();

En este ejemplo, la tabla de DynamoDB es una búsqueda de imágenes que muestra los resultados de una máquina tragaperras según lo especificado por los parámetros en slotParams.

Tras una llamada del método getItem realizada correctamente, la propiedad data del objeto AWS.Response contiene un objeto Item devuelto por DynamoDB. El acceso a los datos devueltos se efectúa de acuerdo con el parámetro ProjectionExpression de la solicitud, que en este caso significa el miembro imageFile del objeto Item. Debido a que el miembro imageFile contiene un valor de cadena, el usuario obtiene acceso al nombre de archivo de la misma imagen a través del valor del elemento secundario S de imageFile.

Paginación por los datos devueltos

En ocasiones el contenido de la propiedad data que una solicitud de servicio devuelve abarca varias páginas. Puede obtener acceso a la siguiente página de datos llamando al método response.nextPage. Este método envía una nueva solicitud. La respuesta de la solicitud se puede capturar con una devolución de llamada o con agentes de escucha de éxito y error.

Puede comprobar si los datos devueltos por una solicitud de servicio tienen páginas de datos adicionales llamando al método response.hasNextPage. Este método devuelve un valor booleano para indicar si la llamada a response.nextPage devuelve datos adicionales.

s3.listObjects({Bucket: 'bucket'}).on('success', function handlePage(response) { // do something with response.data if (response.hasNextPage()) { response.nextPage().on('success', handlePage).send(); } }).send();

Acceso a información de error desde un objeto de respuesta

La propiedad error del objeto AWS.Response contiene los datos de error disponibles en caso de que se produzca un error de servicio o un error de transferencia. El error devuelto adopta el siguiente formato.

{ code: 'SHORT_UNIQUE_ERROR_CODE', message: 'a descriptive error message' }

En caso de que se produzca un error, el valor de la propiedad data es null. Si gestiona eventos que pueden estar en un estado de error, compruebe siempre si la propiedad error se estableció antes de intentar obtener acceso al valor de la propiedad data.

Acceso al objeto de solicitud de origen

La propiedad request proporciona acceso al objeto AWS.Request de origen. Puede ser útil para hacer referencia al objeto AWS.Request original para obtener acceso a los parámetros originales que ha enviado. En el ejemplo siguiente, la propiedad request se utiliza para obtener acceso al parámetro Key de la solicitud de servicio original.

s3.getObject({Bucket: 'bucket', Key: 'key'}).on('success', function(response) { console.log("Key was", response.request.params.Key); }).send();