

# Node.js y DAX
<a name="DAX.client.run-application-nodejs"></a>

Siga estos pasos para ejecutar la aplicación de ejemplo de Node.js en su instancia de Amazon EC2.

**Para ejecutar el ejemplo de Node.js para DAX**

1. Configure Node.js en su instancia ,de Amazon EC2 de la siguiente manera:

   1. Instale el administrador de la versión de nodo (`nvm`).

      ```
      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
      ```

   1. Use nvm para instalar Node.js.

      ```
      nvm install 12.16.3
      ```

   1. Compruebe que Node.js está instalado y se ejecuta correctamente.

      ```
      node -e "console.log('Running Node.js ' + process.version)"
      ```

      Esto debería mostrar el mensaje siguiente.

      `Running Node.js v12.16.3`

1. Instale el cliente Node.js de DAX utilizando el administrador del paquete de nodos (`npm`).

   ```
   npm install amazon-dax-client
   ```

1. Descargue el código fuente del programa de ejemplo (archivo `.zip`).

   ```
   wget http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/TryDax.zip
   ```

   Cuando haya terminado la descarga, extraiga los archivos de código fuente.

   ```
   unzip TryDax.zip
   ```

1. Ejecute los siguientes programas de Node.js. El primer programa crea una tabla de Amazon DynamoDB denominada `TryDaxTable`. El segundo programa escribe datos en la tabla.

   ```
   node 01-create-table.js
   node 02-write-data.js
   ```

1. Ejecute los siguientes programas de Node.js.

   ```
   node 03-getitem-test.js
   node 04-query-test.js
   node 05-scan-test.js
   ```

    Tome nota de la información de tiempo; es decir, del número de milisegundos necesarios para realizar las pruebas de `GetItem`, `Query` y `Scan`.

1. En el paso anterior, ha ejecutado los programas en el punto de enlace de DynamoDB. Ejecute los programas de nuevo, pero, esta vez, las operaciones `GetItem`, `Query` y `Scan` se procesan en el clúster de DAX.

   Para determinar el punto de enlace del clúster de DAX, elija una de las siguientes opciones:
   + **En la consola de DynamoDB**: elija su clúster de DAX. El punto de enlace del clúster se muestra en la consola, como en el siguiente ejemplo.

     ```
     dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
     ```
   + **En la AWS CLI**: ingrese el siguiente comando.

     ```
     aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"
     ```

     El punto de enlace del clúster se muestra en el resultado, como en el siguiente ejemplo.

     ```
     {
         "Address": "my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com",
         "Port": 8111,
         "URL": "dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com"
     }
     ```

   Ahora, vuelva a ejecutar los programas, pero, esta vez, especifique el punto de enlace del clúster como parámetro en la línea de comandos.

   ```
   node 03-getitem-test.js dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
   node 04-query-test.js dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
   node 05-scan-test.js dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
   ```

   Fíjese en el resto del resultado y tome nota de la información sobre tiempos. Los tiempos transcurridos para las operaciones `GetItem`, `Query` y `Scan` deberían ser significativamente menores con DAX que con DynamoDB.

1. Ejecute el siguiente programa de Node.js para eliminar `TryDaxTable`.

   ```
   node 06-delete-table
   ```

Para obtener más información sobre estos programas, consulte las siguientes secciones:
+ [01-create-table.js](DAX.client.run-application-nodejs.01-create-table.md)
+ [02-write-data.js](DAX.client.run-application-nodejs.02-write-data.md)
+ [03-getitem-test.js](DAX.client.run-application-nodejs.03-getitem-test.md)
+ [04-query-test.js](DAX.client.run-application-nodejs.04-query-test.md)
+ [05-scan-test.js](DAX.client.run-application-nodejs.05-scan-test.md)
+ [06-delete-table.js](DAX.client.run-application-nodejs.06-delete-table.md)