Experimentar o Node.js

Concluído

Nesta unidade, você cria e executa um script Node.js.

Iniciar o contêiner de desenvolvimento em um navegador

Um ambiente de contêiner de desenvolvimento está disponível com todas as dependências necessárias para concluir todos os exercícios deste projeto. Você pode executar o contêiner de desenvolvimento no GitHub Codespaces em um navegador ou localmente usando o Visual Studio Code.

O GitHub Codespaces executa um contêiner de desenvolvimento gerenciado pelo GitHub com o Visual Studio Code para Web como interface do usuário. Para o ambiente de desenvolvimento mais simples, use o GitHub Codespaces para que você tenha as ferramentas de desenvolvedor e dependências corretas pré-instaladas para concluir esse módulo de treinamento.

Importante

Todas as contas do GitHub podem usar Codespaces por até 60 horas gratuitas por mês com 2 instâncias principais. Para saber mais, confira Armazenamento e horas por núcleo incluídos mensalmente no GitHub Codespaces.

  1. Inicie o processo para criar um GitHub Codespace no branch main do repositório GitHub MicrosoftDocs/node-essentials.

  2. Na página Criar codespace, examine as configurações do codespace e selecione Criar codespace

    Captura de tela da tela de confirmação antes de criar um novo codespace.

  3. Aguarde até que o codespace seja iniciado. Esse processo de inicialização pode levar alguns minutos.

  4. Abra um novo terminal no codespace.

    Dica

    Você pode usar o menu principal para navegar até a opção de menu Terminal e, em seguida, selecionar a opção Novo Terminal.

    Captura de tela da opção de menu codespaces para abrir um novo terminal.

REPL do Node.js

O Node.js tem um modo REPL (loop ler-avaliar-imprimir) interno que é útil para avaliações e experimentações rápidas com código. O modo REPL é um ambiente de console interativo em que você pode inserir código JavaScript e fazer com que o Node.js interprete e execute o código e imprima a saída.

O modo REPL do Node.js funciona da seguinte maneira:

  • Ler: lê e analisa a entrada de código JavaScript do usuário (ou mostra um erro quando o código é inválido).
  • Avaliar: avalia o código JavaScript inserido.
  • Imprimir: imprime os resultados computados.
  • Loop: executa um loop e aguarda até o usuário inserir um novo comando (ou é encerrado quando o usuário digita Ctrl + C duas vezes).

Para iniciar o modo REPL, execute o programa node no terminal do contêiner de desenvolvimento.

Observação

Use o botão direito do mouse para >Colar para inserir um comando copiado no console REPL.

node

O ambiente REPL é aberto. Você verá o prompt do REPL:

>

Insira o seguinte código no console do REPL (clique com o botão direito do mouse em >Colar):

console.log('Hello World, from the REPL.')

Esse código imprimirá a mensagem "Olá, Mundo, do REPL" no console do REPL:

Hello World, from the REPL.

Para sair do console do REPL, insira CTRL + C duas vezes.

Criar um script Node.js

O Node.js também dá suporte à execução de código por meio de arquivos.

  1. Crie uma nova pasta chamada hello-world no contêiner de desenvolvimento.

  2. Abra a nova pasta em um terminal clicando com o botão direito do mouse no nome da pasta e selecionando Abrir no Terminal Integrado.

  3. No terminal, inicialize o projeto do Node.

    npm init -y
    
  4. Instale um pacote do Node node-fetch para fazer solicitações HTTP assíncronas.

    npm install node-fetch
    
  5. Abra o arquivo package.json e adicione a propriedade a seguir para permitir a assincronia/espera de nível superior.

    "type":"module",
    
  6. Crie um arquivo chamado index.js na nova pasta.

  7. Copie o seguinte código para o arquivo index.js:

    console.log('Hello World, from a script file.');
    
  8. No terminal, insira o comando node seguido pelo nome do arquivo index.js:

    node index.js
    

    A seguinte saída deve ser exibida:

     Hello World, from a script file.
    

Você executou seu primeiro código JavaScript do Node.js.

  • Pergunta: O console.log é síncrono ou assíncrono?
  • Resposta: O método console.log aparece no desenvolvimento para ser executado imediatamente e, portanto, supõe-se que seja assíncrono. Não há garantia de comportamento assíncrono para este método, portanto, ele deve ser considerado síncrono. Como a execução do código pode ser bloqueada até que o método console.log seja concluído, você será advertido de manter instruções console.log em seu código em produção.

Adicionar uma função assíncrona de nível superior

O código assíncrono de nível superior a seguir solicita uma fonte de dados HTTP JSON e a exibe.

  1. Adicione o seguinte código ao arquivo index.js para criar uma solicitação HTTP assíncrona:

    import fetch from 'node-fetch';
    
    console.log(`start`);
    try {
      const res = await fetch('https://github.com/MicrosoftDocs/node-essentials');
    
      console.log('statusCode:', res.status);
    } catch (error) {
      console.log(`error: ${error}`);
    }
    console.log(`end`);
    

    O método https.get faz uma solicitação HTTP para o site Node.js e retorna a resposta. O método get adota dois parâmetros: a URL a ser solicitada e uma função de retorno de chamada que é chamada quando a resposta é recebida. A função de retorno de chamada adota um único parâmetro, res, que é o objeto de resposta.

  2. Execute novamente o seguinte aplicativo:

    node index.js
    
  3. A ordem dos logs do console é a seguinte:

    start
    statusCode: 200
    end
    

A partir do resultado, você pode ver o loop de eventos em ação. O método HTTP é chamado e colocado na fila de espera de tarefas, aguardando o respectivo retorno. O loop de eventos inicia a tarefa seguinte, que é o método console.log.

Parar o contêiner de desenvolvimento

A exclusão do ambiente GitHub Codespaces garante que você possa maximizar a quantidade de horas gratuitas por núcleo que você tem direito na sua conta.

Importante

Para saber mais sobre os direitos da sua conta do GitHub, confira O GitHub Codespaces inclui mensalmente armazenamento e horas de núcleo.

  1. Entre no painel do GitHub Codespaces (https://github.com/codespaces).

  2. Localize seus Codespaces atualmente em execução, originados do repositório MicrosoftDocs/node-essentials do GitHub.

    Captura de tela de todos os Codespaces em execução, incluindo seu status e modelos.

  3. Abra o menu de contexto do codespace e selecione Excluir.

    Captura de tela do menu de contexto de um único codespace com a opção “Excluir” realçada.