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