Utilisation de l'objet de réponse - AWS SDK for JavaScript

Nous avons annoncé la sortie end-of-support de la AWS SDK for JavaScript v2. Nous vous recommandons de migrer vers la AWS SDK for JavaScript version 3. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de l'objet de réponse

Une fois qu'une méthode d'objet de service a été appelée, elle renvoie un objet AWS.Response en le transmettant à votre fonction de rappel. Vous accédez au contenu de la réponse via les propriétés de l'objet AWS.Response. Pour accéder au contenu de la réponse, vous utilisez deux propriétés de l'objet AWS.Response :

  • propriété data

  • propriété error

Lorsque vous utilisez le mécanisme de rappel standard, ces deux propriétés sont fournies en tant que paramètres sur la fonction de rappel anonyme, comme illustré dans l'exemple suivant.

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

Accès aux données renvoyées dans l'objet de réponse

La propriété data de l'objet AWS.Response contient les données sérialisées renvoyées par la demande de service. Lorsque la demande aboutit, la propriété data contient un objet contenant un mappage pour les données renvoyées. La propriété data peut être null si une erreur se produit.

Voici un exemple d'appel de la getItem méthode d'une table DynamoDB pour récupérer le nom d'un fichier image à utiliser dans le cadre d'un jeu.

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

Dans cet exemple, la table DynamoDB est une recherche d'images qui montrent les résultats d'un pull de machine à sous, tels que spécifiés par les paramètres de. slotParams

En cas d'appel réussi de la getItem méthode, la data propriété de l'AWS.Responseobjet contient un Item objet renvoyé par DynamoDB. L'accès aux données retournées dépend du paramètre ProjectionExpression de la demande. Dans le cas présent, il s'agit du membre imageFile de l'objet Item. Étant donné que le membre imageFile contient une valeur de chaîne, vous accédez au nom de fichier de l'image via la valeur du membre enfant S de imageFile.

Pagination des données retournées

Parfois, le contenu de la propriété data retournée par une demande de service s'étend sur plusieurs pages. Vous pouvez accéder à la page de données suivante en appelant la méthode response.nextPage. Cette méthode envoie une nouvelle demande. La réponse de la demande peut être capturée avec un rappel ou avec des écouteurs de réussite et d'erreur.

Vous pouvez vérifier si des pages de données supplémentaires sont disponibles pour les données renvoyées par une demande de service en appelant la méthode response.hasNextPage. Cette méthode renvoie une valeur booléenne pour indiquer si l'appel de la méthode response.nextPage renvoie des données supplémentaires.

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

Accès aux informations sur les erreurs à partir d'un objet de réponse

La propriété error de l'objet AWS.Response contient les données d'erreur disponibles en cas d'erreur de service ou de transfert. Voici le format de l'erreur renvoyée :

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

En cas d'erreur, la valeur de la propriété data est null. Si vous gérez des événements pouvant être dans un état d'échec, vérifiez toujours si la propriété error a été définie avant d'essayer d'accéder à la valeur de la propriété data.

Accès à l'objet de demande d'origine

La propriété request fournit un accès à l'objet AWS.Request d'origine. Il peut s'avérer utile pour faire référence à l'objet AWS.Request d'origine en vue d'accéder aux paramètres d'origine qu'il a envoyés. Dans l'exemple suivant, la propriété request est utilisée pour accéder au paramètre Key de la demande de service d'origine.

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