

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

Siga estas etapas para executar a aplicação de exemplo em Node.js na instância do Amazon EC2.

**Para executar o exemplo em Node.js para DAX**

1. Configure o Node.js na instância do Amazon EC2 da seguinte forma:

   1. Instale o gerenciador de versão de nó (`nvm`).

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

   1. Use o nvm para instalar o Node.js.

      ```
      nvm install 12.16.3
      ```

   1. Verifique se o Node.js está instalado e funcionando corretamente.

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

      Isso deve exibir a seguinte mensagem.

      `Running Node.js v12.16.3`

1. Instale o cliente Node.js do DAX usando o gerenciador de pacotes de nó (`npm`).

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

1. Baixe o código-fonte do programa de exemplo (arquivo `.zip`).

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

   Quando o download for concluído, extraia os arquivos de origem.

   ```
   unzip TryDax.zip
   ```

1. Execute os seguintes programas Node.js. O primeiro programa cria uma tabela do Amazon DynamoDB chamada `TryDaxTable`. O segundo programa grava dados na tabela.

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

1. Execute os seguintes programas Node.js.

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

    Anote as informações de tempo: o número de milissegundos necessários para os testes `GetItem`, `Query` e `Scan`.

1. Na etapa anterior, você executou os programas no endpoint do DynamoDB. Execute os programas novamente, mas, desta vez, as operações, `GetItem`, `Query` e `Scan` são processadas pelo cluster do DAX.

   Para determinar o endpoint do cluster do DAX, escolha uma das seguintes opções:
   + **Usando o console do DynamoDB**: escolha seu cluster do DAX. O endpoint do cluster é mostrado no console, como no exemplo a seguir.

     ```
     dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
     ```
   + **Usando a AWS CLI**: insira o comando a seguir.

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

     O endpoint do cluster é mostrado na saída, como no exemplo a seguir.

     ```
     {
         "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"
     }
     ```

   Agora, execute os programas novamente, mas, desta vez, especifique o endpoint do cluster como um parâmetro de linha de comando.

   ```
   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
   ```

   Observe o restante da saída e anote as informações de tempo. Os tempos decorridos para `GetItem`, `Query` e `Scan` devem ser significativamente mais baixos com o DAX do que com o DynamoDB.

1. Execute o seguinte programa Node.js para excluir a `TryDaxTable`.

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

Para obter mais informações sobre esses programas, consulte as seguintes seções:
+ [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)