

La versión 2 de AWS SDK para JavaScript ha llegado al final del soporte. Se recomienda que migre a [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalles e información adicionales sobre cómo realizar la migración, consulte este [anuncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Introducción a Node.js
<a name="getting-started-nodejs"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/es_es/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**Este ejemplo de código de Node.js muestra:**
+ Cómo crear el manifiesto `package.json` para su proyecto.
+ Cómo instalar e incluir los módulos que su proyecto utiliza.
+ Cómo crear un objeto de servicio de Amazon Simple Storage Service (Amazon S3) a partir de la clase de cliente `AWS.S3`.
+ Cómo crear un bucket de Amazon S3 y cargar un objeto en dicho bucket.

## El escenario
<a name="getting-started-nodejs-scenario"></a>

En el ejemplo se muestra cómo configurar y ejecutar un módulo de Node.js sencillo que crea un bucket de Amazon S3 y luego le añade un objeto de texto. 

Dado que los nombres en Amazon S3 deben ser únicos a nivel global, este ejemplo incluye un módulo de Node.js de terceros que genera un valor de ID único que puede incorporar en el nombre de bucket. Este módulo adicional se llama `uuid`.

## Tareas previas necesarias
<a name="getting-started-nodejs-prerequisites"></a>

Para configurar y ejecutar este ejemplo, primero debe completar estas tareas:
+ Crear un directorio de trabajo para desarrollar su módulo Node.js. Llame a este directorio `awsnodesample`. Tenga en cuenta que el directorio se debe crear en una ubicación donde las aplicaciones lo puedan actualizar. Por ejemplo, en Windows, no cree el directorio en la sección "C:\$1Archivos de programa".
+ Instale Node.js. Para obtener más información, consulte el sitio web de [Node.js](https://nodejs.org). Puede encontrar descargas de las versiones LTS y actual de Node.js para una serie de sistemas operativos en [https://nodejs.org/en/download/current/](https://nodejs.org/en/download/current/).

**Contents**
+ [El escenario](#getting-started-nodejs-scenario)
+ [Tareas previas necesarias](#getting-started-nodejs-prerequisites)
+ [Paso 1: Instalar el SDK y las dependencias](#getting-started-nodejs-install-sdk)
+ [Paso 2: Configurar sus credenciales](#getting-started-nodejs-credentials)
+ [Paso 3: Crear el JSON del paquete para el proyecto](#getting-started-nodejs-download)
+ [Paso 4: Escriba el código de Node.js](#getting-started-nodejs-js-code)
+ [Paso 5: Ejecución de la muestra](#getting-started-nodejs-run-sample)

## Paso 1: Instalar el SDK y las dependencias
<a name="getting-started-nodejs-install-sdk"></a>

El paquete del SDK para JavaScript se instala usando [npm (el administrador de paquetes de Node.js)](https://www.npmjs.com). 

En el directorio `awsnodesample` del paquete, escriba lo siguiente en la línea de comandos.

```
npm install aws-sdk
```

Este comando instala el SDK para JavaScript en su proyecto y actualiza `package.json` para incluir el SDK como dependencia de un proyecto. Puede encontrar información sobre este paquete buscando "aws-sdk" en el [sitio web de npm](https://www.npmjs.com).

A continuación, instale el módulo `uuid` en el proyecto escribiendo lo siguiente en la línea de comandos, para instalar el módulo y las actualizaciones `package.json`. Para obtener más información acerca de `uuid`, consulte la página del módulo en [https://www.npmjs.com/package/uuid](https://www.npmjs.com/package/uuid).

```
npm install uuid
```

Estos paquetes y su código asociado se instalan en el subdirectorio `node_modules` del proyecto.

Para obtener más información acerca de la instalación de paquetes Node.js, consulte las secciones sobre [cómo descargar e instalar paquetes locales](https://docs.npmjs.com/getting-started/installing-npm-packages-locally) y [cómo crear módulos Node.js](https://docs.npmjs.com/getting-started/creating-node-modules) en el [sitio web de npm (administrador de paquetes de Node.js)](https://www.npmjs.com). Para obtener información acerca del cómo descargar e instalar el AWS SDK para JavaScript, consulte [Instalación del SDK para JavaScript](installing-jssdk.md).

## Paso 2: Configurar sus credenciales
<a name="getting-started-nodejs-credentials"></a>

Debe proporcionar credenciales para AWS, de modo que el SDK solo obtenga acceso a su cuenta y sus recursos. Para obtener más información sobre cómo obtener sus credenciales de cuenta, consulte [Autenticación de SDK con AWS](getting-your-credentials.md).

Para almacenar esta información, le recomendamos que cree un archivo de credenciales compartidas. Para aprender a hacerlo, consulte [Carga de credenciales en Node.js desde el archivo de credenciales compartidas](loading-node-credentials-shared.md). Su archivo de credenciales debe parecerse al siguiente ejemplo.

```
[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
```

Puede determinar si ha configurado las credenciales correctamente ejecutando el siguiente código con Node.js:

```
var AWS = require("aws-sdk");

AWS.config.getCredentials(function(err) {
  if (err) console.log(err.stack);
  // credentials not loaded
  else {
    console.log("Access key:", AWS.config.credentials.accessKeyId);
  }
});
```

Del mismo modo, si ha definido la región correctamente en el archivo `config`, puede mostrar ese valor estableciendo la variable de entorno `AWS_SDK_LOAD_CONFIG` en cualquier valor y utilizando el siguiente código:

```
var AWS = require("aws-sdk");

console.log("Region: ", AWS.config.region);
```

## Paso 3: Crear el JSON del paquete para el proyecto
<a name="getting-started-nodejs-download"></a>

Después de crear el directorio del proyecto `awsnodesample`, debe crear y añadir un archivo `package.json` para guardar los metadatos de su proyecto de Node.js. Para obtener información detallada acerca de cómo utilizar `package.json` en un proyecto Node.js, consulte la sección sobre [creación de un archivo package.json](https://docs.npmjs.com/creating-a-package-json-file).

En el directorio del proyecto, cree un archivo nuevo denominado `package.json`. Luego añada este JSON al archivo.

```
{
  "dependencies": {},
  "name": "aws-nodejs-sample",
  "description": "A simple Node.js application illustrating usage of the SDK for JavaScript.",
  "version": "1.0.1",
  "main": "sample.js",
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "NAME",
  "license": "ISC"
}
```

Guarde el archivo. A medida que instale los módulos que necesita, la parte `dependencies` del archivo se completará. Puede encontrar un archivo JSON que muestra un ejemplo de estas dependencias [aquí, en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/nodegetstarted/example_package.json). 

## Paso 4: Escriba el código de Node.js
<a name="getting-started-nodejs-js-code"></a>

Cree un archivo nuevo denominado `sample.js` para que contenga el código de ejemplo. Para empezar, añada que las llamadas a la función `require` deben incluir el SDK para JavaScript y los módulos `uuid`, de modo que estén disponibles para que los use.

Cree un nombre de bucket único que se utilice para crear un bucket de Amazon S3 añadiendo un valor de ID único a un prefijo fácil de reconocer, en este caso `'node-sdk-sample-'`. Puede generar el ID único llamando al módulo `uuid`. A continuación, cree un nombre para el parámetro `Key` utilizado para cargar un objeto en el bucket.

Cree un objeto `promise` para llamar al método `createBucket` del objeto de servicio `AWS.S3`. Si obtiene una respuesta correcta, cree los parámetros necesarios para cargar texto al bucket que acaba de crear. Usando otra promesa, llame al método `putObject` para cargar el objeto de texto en el bucket.

```
// Load the SDK and UUID
var AWS = require("aws-sdk");
var uuid = require("uuid");

// Create unique bucket name
var bucketName = "node-sdk-sample-" + uuid.v4();
// Create name for uploaded object key
var keyName = "hello_world.txt";

// Create a promise on S3 service object
var bucketPromise = new AWS.S3({ apiVersion: "2006-03-01" })
  .createBucket({ Bucket: bucketName })
  .promise();

// Handle promise fulfilled/rejected states
bucketPromise
  .then(function (data) {
    // Create params for putObject call
    var objectParams = {
      Bucket: bucketName,
      Key: keyName,
      Body: "Hello World!",
    };
    // Create object upload promise
    var uploadPromise = new AWS.S3({ apiVersion: "2006-03-01" })
      .putObject(objectParams)
      .promise();
    uploadPromise.then(function (data) {
      console.log(
        "Successfully uploaded data to " + bucketName + "/" + keyName
      );
    });
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Este código de ejemplo se puede encontrar [aquí en GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/nodegetstarted/sample.js).

## Paso 5: Ejecución de la muestra
<a name="getting-started-nodejs-run-sample"></a>

Escriba el comando siguiente para ejecutar el ejemplo.

```
node sample.js
```

Si la carga se realiza correctamente, verá un mensaje de confirmación en la línea de comandos. También puede encontrar el bucket y el objeto de texto cargado en la [consola de Amazon S3](https://console.aws.amazon.com/s3/).