Experimentar o Node.js
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.
Inicie o processo para criar um GitHub Codespace no branch
main
do repositório GitHubMicrosoftDocs/node-essentials
.Na página Criar codespace, examine as configurações do codespace e selecione Criar codespace
Aguarde até que o codespace seja iniciado. Esse processo de inicialização pode levar alguns minutos.
Abra um novo terminal no codespace.
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.
Crie uma nova pasta chamada hello-world no contêiner de desenvolvimento.
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.
No terminal, inicialize o projeto do Node.
npm init -y
Instale um pacote do Node
node-fetch
para fazer solicitações HTTP assíncronas.npm install node-fetch
Abra o arquivo
package.json
e adicione a propriedade a seguir para permitir a assincronia/espera de nível superior."type":"module",
Crie um arquivo chamado index.js na nova pasta.
Copie o seguinte código para o arquivo index.js:
console.log('Hello World, from a script file.');
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étodoconsole.log
seja concluído, você será advertido de manter instruçõesconsole.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.
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étodoget
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.Execute novamente o seguinte aplicativo:
node index.js
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.
Entre no painel do GitHub Codespaces (https://github.com/codespaces).
Localize seus Codespaces atualmente em execução, originados do repositório
MicrosoftDocs/node-essentials
do GitHub.Abra o menu de contexto do codespace e selecione Excluir.