Buscar

Node-js

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Node.js
Apresentação
A área de desenvolvimento de software está em constante evolução. Tecnologias novas vêm 
surgindo em ritmo acelerado, novas plataformas e conceitos vêm sendo difundidos e o desafio é 
cada vez maior.
O desenvolvimento de software para dispositivos móveis é uma área com diversas oportunidades. 
O uso de dispositivos móveis faz parte do cotidiano das pessoas e, diferentemente do passado, em 
que estes eram utilizados para realizar e receber chamadas, atualmente, por meio de diversos 
aplicativos, estão sendo utilizados para infinitas atividades.
Nesta Unidade de Aprendizagem, você aprenderá sobre a tecnologia Node.js, uma tecnologia 
moderna e que serve de base para outras. Além disso, conhecerá o seu gerenciador de pacotes, o 
NPM. Por fim, verá como iniciar um desenvolvimento de aplicativo com o framework Ionic.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Definir o Node.js e como funciona o seu ambiente.•
Descrever a utilização do Node.js, npm, ionic e vscode.•
Praticar o uso do Node.js no desenvolvimento de um pequeno exemplo.•
Infográfico
O Node.js é uma tecnologia nova, a qual está sendo usada por grandes empresas como a Netflix, o 
PayPal, entre outras. No meio de diversas outras tecnologias, as características do Node.js fazem 
dele uma boa opção para quem busca desempenho e economia.
Neste Infográfico, você vai conhecer essa tecnologia, verificando como ela é formada, assim como 
as suas principais características. 
Conteúdo do livro
Em um mercado cada vez mais competitivo, novos paradigmas de desenvolvimento vêm surgindo. 
A área de desenvolvimento de software vem evoluindo cada vez mais, e grandes players do mercado 
estão aderindo tecnologias mais novas com a finalidade de ter um consumo menor dos seus 
recursos computacionais, gerando maior desempenho e economia.
No capítulo Node.js, da obra Desenvolvimento para dispositivos móveis, base teórica desta Unidade 
de Aprendizagem, você vai conhecer mais sobre essa tecnologia emergente, além de como utilizá-la 
no desenvolvimento de suas aplicações. Além disso, vai verificar o que é utilizado para gerenciar 
módulos de um projeto de maneira fácil, e como iniciar o desenvolvimento de um aplicativo móvel 
utilizando um bom editor de códigos. Por fim, vai ver a criação de uma aplicação utilizando o 
Node.js.
Boa leitura.
DESENVOLVIMENTO 
PARA DISPOSITIVOS 
MÓVEIS 
Felipe Andery Reis
Node.js
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 � Definir o Node.js e como funciona seu ambiente.
 � Descrever a utilização do Node.js, Node Package Manager, Ionic e 
Visual Studio Code.
 � Praticar o uso do Node.js no desenvolvimento de um pequeno 
exemplo.
Introdução
As tecnologias em geral estão se revolucionando, e no mundo de 
desenvolvimento de software, isso também ocorre. Se você pensar 
em um passado próximo, perceberá que muitas tecnologias já foram 
e continuam sendo criadas para permitir que os processos de desen-
volvimento se tornem mais ágeis e eficientes. Em um cenário cada vez 
mais competitivo, as empresas optam por soluções mais simples, cujas 
ferramentas de desenvolvimento sejam mais eficazes para criar seus 
produtos e serviços.
Neste capítulo, você estudará a plataforma Node.js, sua definição, seu 
funcionamento, sua utilização com um exemplo prático e seus compo-
nentes, como o gerenciador de pacotes do Node (npm, em inglês node 
package manager); a plataforma Ionic, que cria aplicativos móveis cuja 
base é o Node.js; e o Visual Studio Code (VSCode), um editor de códigos 
para desenvolver programas.
Plataforma Node.js
Em 2009, motivado pela ideia de criar uma tecnologia que pudesse oferecer um 
melhor aproveitamento dos recursos de máquina, como central process unit 
(CPU) e memória, e deixar que os processos em execução ficassem o menor 
tempo ociosos, o pesquisador e engenheiro Ryan Dahl criou a plataforma 
Node.js, um ambiente de execução JavaScript orientado a eventos, assíncrono 
e open source.
A linguagem JavaScript era utilizada nos navegadores e servia para 
criação de animações, efeitos e ações em páginas Web, depois, começou 
a ser empregada em aplicações que fossem desvinculadas do navegador. 
Assim, o Node.js poderia usar seus recursos para criação de aplicações Web 
que rodam ao lado do servidor, como as aplicações back-end e Desktop, 
Application Programming Interface (API), utilitários de linhas de comando, 
etc., abrindo muitas oportunidades para empresas no desenvolvimento de 
produtos e serviços.
O Node.js é baseado em alguns componentes, como o motor ou engine 
V8, um interpretador JavaScript criado pelo Google e utilizado no navegador 
Chrome; e a Libuv, uma biblioteca que fornece suporte a várias funcionali-
dades, por exemplo, a conexão de rede ou ao banco de dados, o acesso aos 
dispositivos de entrada e saída, entre outras.
O motor V8 é um interpretador de JavaScript e WebAssembly, criado pelo Google 
e escrito em C++, open source e com alto desempenho. Ele pode ser executado em 
multiplataformas, como Windows, Mac e Linux, sendo mais utilizado em navegadores 
(p. ex., Chrome) e no Node.js, que a usa em sua base. Para saber mais, acesse o site 
oficial no link a seguir.
https://v8.dev/
Inicialmente utilizado no Node.js, o Libuv é um framework que oferece suporte 
multiplataformas e tem como principal objetivo trabalhar como um modelo assíncrono 
de entrada e saída, fazendo determinado processo em execução não atrapalhar outras 
tarefas antes que ele tenha terminado. Suas principais características incluem o suporte 
aos protocolos Transmission Control Protocol (TCP), User Datagram Protocol (UDP) e 
Domain Name System (DNS), bem como as operações com arquivos e sistemas de 
arquivos. Essa biblioteca também é utilizada por outras tecnologias, como Lua, Julia 
e Python. Para saber mais, acesse o site oficial no link a seguir.
http://libuv.org/
Node.js2
Criado em 2013, o Electron é um framework open source, permite criar aplicativos Desktop 
que podem ser executados em várias plataformas e tem como base a combinação 
dos componentes Chromium e Node.js. Se você deseja utilizar o Node.js para criar 
aplicações Desktop, acesse o link a seguir e saiba mais.
https://qrgo.page.link/JEMAZ
Funcionamento
Muitas aplicações Web empregam um modelo bloqueante, ou blocking 
thread, para lidar com processos de entrada e saída, fazendo os recursos 
utilizados na máquina não funcionarem de forma eficiente. Isso reflete um 
comportamento síncrono, em que uma operação ocorrerá depois de outra 
(PEREIRA, 2013).
Considerando que a maioria dos servidores tradicionais são multithreaded, 
portanto, para cada requisição no servidor, uma thread é criada, imagine 
uma requisição em um servidor Web para a operação de leitura e escrita 
no banco de dados. Sendo essa tarefa dispendiosa, a thread responsável 
pelo processamento ficará em estado de espera (wait) até que a operação 
no banco de dados seja concluída, para logo depois continuar o processo e 
enviar uma resposta à requisição. Caso existam outras requisições no servidor 
nesse tempo, threads serão criadas e ficarão em wait em processos mais 
custosos. Esse tempo em que elas ficam ociosas aguardando a finalização 
do processamento faz a alocação dos recursos computacionais (como a 
memória) não ser eficiente.
Portanto, ao empregar o modelo bloqueante, pode-se perceber que manter 
uma fila de threads ociosa não é muito interessante. Na Figura 1, você pode 
ver um exemplo desse modelo.
3Node.js
Figura 1. Modelo bloqueante.
Nova
thread
Nova
thread
Thread
em espera 
Servidor 
tradicional
Tarefa dispendiosa
Requisições
No Node.js, isso acontece de forma diferente, pois uma nova requisi-
ção no servidor não gera uma nova thread, ao contrário, ele oferece uma 
arquitetura não bloqueante, baseada em eventos que seguem o modelo de 
thread única (single thread), chamada de Event Loop. Além disso, o Node.js fornece um Worker Pool ou pool de threads para lidar com os processos 
mais dispendiosos, como leitura e escrita de arquivos, acesso ao banco de 
dados, entre outros.
Quando chega uma requisição no Event Loop, ele verifica se a tarefa é 
bloqueante/dispendiosa, caso ela demande um tempo de processamento maior, 
é enviada ao processamento no pool de threads, cuja operação ocorre de forma 
assíncrona. Ele funciona como um laço infinito, processando as requisições 
e enviando as tarefas mais dispendiosas ao pool de threads. Quando existir a 
finalização de alguma tarefa bloqueante, o retorno é enviado ao Event Loop 
para que ele continue sua execução (PEREIRA, 2013). Veja na Figura 2 um 
exemplo de modelo não bloqueante.
Node.js4
Figura 2. Modelo não bloqueante.
Fonte: Adaptada de Kiran (2015, documento on-line). 
Ao ser iniciado, o Node.js realiza a inicialização do Event Loop, processa algum script 
de entrada fornecido, pode fazer chamadas de API assíncronas, agendar cronômetros 
ou chamar processos como o process.nextTick() e, depois, começa a processar o Event 
Loop. Para saber mais sobre o tema, acesse o link a seguir.
https://qrgo.page.link/AdZ3e
Vantagens e desvantagens
Assim como qualquer tecnologia, a plataforma Node.js tem vantagens e des-
vantagens. A seguir, você pode ver algumas de suas vantagens.
 � Enorme comunidade ativa, milhares de pacotes disponíveis para reu-
tilização e vários casos de estudo de grandes empresas, como PayPal, 
Netflix, Walmart, entre outros.
 � Poucos recursos computacionais, incluindo baixo consumo de random 
access memory (RAM) e um melhor aproveitamento da CPU.
5Node.js
 � Curva de aprendizagem é baixa para desenvolvedores Web que já pro-
gramam em JavaScript.
 � Existência de bibliotecas, pacotes e plug-ins distribuídos pelo npm.
Já suas desvantagens incluem:
 � Alguns desenvolvedores se sentem incomodados com a utilização da 
linguagem JavaScript.
 � Tecnologia praticamente nova (desde 2009).
 � Não recomendado em aplicações que demandam alto uso da CPU, 
devido à existência de muitos cálculos.
 � Modelo assíncrono se torna um fator complicador devido ao grande 
número de callbacks que possam existir.
Utilização do Node.js
Para usar o Node.js e executá-lo em uma máquina local, deve-se configurar 
o ambiente de desenvolvimento. O primeiro passo é fazer o download da 
instalação pelo site oficial da plataforma e seguir seus passos para o sistema 
operacional.
O download do Node.js pode ser feito pelo site oficial, no qual os pacotes de instalação 
para as plataformas Windows, Mac e Linux estão disponíveis. Para saber mais, acesse 
o link a seguir.
http://nodejs.org
Uma vez que o Node.js foi instalado corretamente na máquina, sua versão 
pode ser verificada por meio do comando node –v. Se o Windows for 
o sistema operacional utilizado, pelo prompt de comandos, basta digitar o 
comando conforme você pode ver na Figura 3.
Node.js6
Figura 3. Verificando se o Node.js foi instalado corretamente.
Para realizar um teste rápido com um trecho de código JavaScript, sem a 
necessidade de criar um arquivo com extensão .js, pode-se utilizar o console 
interativo do Node.js, basta digitar o comando node no prompt de comandos. 
Na Figura 4, você pode ver seu uso para exibir a mensagem “Olá Mundo 
Node.js”, por meio do comando console.log() do JavaScript.
Figura 4. Exibindo uma mensagem por meio do console interativo do Node.js.
O console interativo do Node.js é conhecido como read-eval-print loop (REPL). Para 
saber mais sobre o assunto, acesse o site oficial no link a seguir.
https://nodejs.org/api/repl.html
Caso você não queira utilizar o console interativo, um arquivo JavaScript 
pode ser criado. Por exemplo, considere que o arquivo app.js contém o 
código console.log(“Olá Mundo Node.js”), portanto, para verificar 
seu funcionamento, basta executá-lo por meio do comando node app.js, 
conforme apresentado na Figura 5.
7Node.js
Figura 5. Exibindo uma mensagem por meio do arquivo app.js.
Você pode deixar sua aplicação Node.js acessível publicamente. Saiba mais sobre 
várias opções para hospedá-la acessando o link a seguir.
https://qrgo.page.link/HZPfo
Utilização de um editor de códigos para 
desenvolvimento
Para desenvolver códigos JavaScript e rodá-los com o Node.js, você pode es-
colher um entre vários editores ou ambientes de desenvolvimento disponíveis, 
como o VSCode, um editor bem conhecido e utilizado.
Criado pela Microsoft, o VSCode é um editor de código-fonte gratuito e 
leve, que fornece suporte para diversas operações de desenvolvimento, como 
depuração, execução de tarefas e controle de versão. Ele está disponível para 
multiplataformas (Windows, Mac e Linux), já vem com suporte nativo para as 
tecnologias JavaScript, TypeScript e Node.js, além de ter uma grande quanti-
dade de extensões para outras linguagens de desenvolvimento. Na Figura 6, 
você pode observar esse tipo de editor.
Node.js8
Figura 6. Editor de códigos VSCode. a) Barra de atividades, que permite alternar as exibi-
ções do editor. b) Barra lateral, que contém informações sobre o projeto em que você está 
trabalhando e os editores abertos. c) Grupo de editores, que contém a área principal para 
editar seus arquivos de desenvolvimento, podendo abrir vários editores. d) Painéis, em que 
você exibe diferentes painéis, como informações de erros, de saída, depuração de código 
e avisos. Um terminal também pode ser aberto nessa área. e) Barra de status, na qual estão 
localizadas as informações sobre o projeto e os arquivos que serão editados.
Fonte: Adaptada de Visual... (2019, documento on-line).
Barra de atividades
Barra lateral Barra de status
Grupo de editores
Painéis
Para abrir no VSCode o arquivo app.js demonstrado anteriormente, 
basta ir à opção File -> Open File e selecionar o arquivo desejado, conforme 
você pode visualizar na Figura 7.
Figura 7. Abrindo um arquivo JavaScript pelo editor de códigos.
9Node.js
Gerenciamento dos pacotes
O Node.js possui um gerenciador padrão de pacotes, conhecido como npm, que 
vem na sua instalação. Ele trouxe uma grande facilidade para os desenvolve-
dores em organizar os pacotes, distribui-los e reutilizá-los em outros projetos.
Para verificar qual versão do npm foi instalada no sistema operacional, 
basta digitar o comando npm –v no prompt de comandos, conforme você 
pode conferir na Figura 8.
Figura 8. Verificando se o npm foi instalado corretamente.
Para instalar um módulo no Node.js e empregá-lo em seu código, deve-
-se utilizar o comando npm install <nome_módulo>, que buscará 
determinado pacote no repositório público do npm. Lembre-se que módulos 
ou pacotes são bibliotecas JavaScript.
Em relação ao repositório público do npm, caso você queira pesquisar por determinado 
pacote, contribuir com algum desenvolvimento ou disponibilizar o próprio módulo, 
acesse o link a seguir.
https://www.npmjs.com/
Node.js10
Para ilustrar o procedimento de instalação de um módulo no Node.js, veja um 
exemplo de como instalar o pacote upper-case, responsável por converter os 
caracteres de uma frase para a letra maiúscula. Para instalar esse pacote, é ne-
cessário executar o comando npm install upper-case, conforme você 
pode ver na Figura 9.
Figura 9. Instalação do pacote upper-case.
Após a instalação, uma pasta node_modules será criada, contendo o pacote 
que foi instalado.
Um pacote Node.js pode ser instalado de duas formas: localmente ou globalmente.
Para fazer uma instalação local, basta utilizar o comando npm install <nome_
modulo>. Assim, o pacote será instalado dentro da pasta node_modules, que é criada 
no diretório de seu projeto.
Caso você opte por uma instalação global, use o comando npm install –g 
<nome_modulo>, no qual -g será responsável por instalar o pacote em um diretório 
node_modules global na máquina de desenvolvimento.
Para fazer a atualização local de um módulo, utilize o comando npm update 
<nome_modulo>. Já para uma atualização global, basta usar o comando npm 
update–g <nome_modulo>.
Por fim, para remover um módulo, use o comando npm uninstall 
<nome_modulo>.
11Node.js
Ao instalar um módulo pelo comando npm, cria-se a pasta node_modules e um 
arquivo chamado package.json, o qual contém informações sobre o projeto e 
suas dependências. Para saber mais sobre esse arquivo, acesse o link a seguir.
https://qrgo.page.link/sGFHa
Para incluir algum módulo no código, deve-se utilizar o comando re-
quire, sendo assim, o pacote upper-case é incluído no arquivo app.js. 
Nesse exemplo, o módulo upper-case se encontra na pasta node_modules 
do projeto. Ao executar o código, a mensagem precisa ser exibida com letras 
maiúsculas, como você pode ver na Figura 10.
Figura 10. Utilização do módulo upper-case.
Framework Ionic
O Node.js é a base de várias tecnologias, entre elas, o framework Ionic, 
um kit de ferramentas open source utilizado no desenvolvimento das 
interfaces de usuário em aplicações móveis e desktop. Ele é muito usado 
por empresas e desenvolvedores para criar aplicações híbridas, que podem 
ser empregadas e portadas para plataformas diferentes, como Android e 
iPhone Operating System (iOS), sem a necessidade de escrever um código 
diferente para cada uma.
Node.js12
O Ionic usa tecnologias da Web bem difundidas, como Hypertext Markup 
Language (HTML), Cascading Style Sheets (CSS) e JavaScript, tem as van-
tagens de ser um framework de alto desempenho e alta qualidade, além de 
possuir uma curva de aprendizagem baixa.
Como a experiência do usuário em qualquer aplicação é fundamental, 
o Ionic oferece diversos suportes para que isso seja possível, integrando-se 
facilmente às outras bibliotecas ou estruturas, como o suporte ao Angular 
e as tecnologias Vue e React, nas quais o suporte está em desenvolvimento.
Para você iniciar o desenvolvimento com o Ionic, são necessários alguns 
requisitos. 
 � Instalação do Node.js: ele é a base da tecnologia Ionic, por isso, deve 
ser instalado na máquina de desenvolvimento, verificando-se também 
se o npm está instalado.
 � Instalação dos módulos Ionic e Cordova: eles devem ser instalados 
pelo npm e são pacotes fundamentais para o funcionamento do Ionic.
Já os comandos a seguir realizam a instalação global dos módulos pelo npm:
 � npm install -g ionic
 � npm install -g cordova
Para verificar se o Ionic e o Cordova foram instalados corretamente, basta 
utilizar os comandos ionic –v e cordova –v, respectivamente. Na 
Figura 11, você pode conferir a execução desses comandos.
Figura 11. Instalando as dependências do framework Ionic.
Para iniciar o desenvolvimento do primeiro aplicativo, há alguns templates 
iniciais disponibilizados pelo site oficial do framework. Veja alguns exemplos 
na Figura 12.
13Node.js
Figura 12. Templates iniciais para o desenvolvimento do primeiro aplicativo.
Fonte: Adaptada de Free Mobile... (2019, documento on-line): 
Por meio do comando ionic start, cria-se um projeto com o tem-
plate inicial e inicia-se o desenvolvimento. Os seguintes templates podem 
ser utilizados:
 � tabs.
 � blank.
 � sidemenu.
Na Figura 13, você pode visualizar como baixar um projeto base com o tem-
plate sidemenu, executando o comando ionic start myApp sidemenu, 
em que myApp é o nome da pasta do projeto que será criada.
Figura 13. Iniciando um projeto Ionic com o template sidemenu.
Neste momento, serão baixados os pacotes essenciais para o projeto exem-
plo, sendo necessário aguardar alguns instantes. Após a conclusão do último 
comando, a pasta myApp é checada a fim de verificar se ela contém os arquivos 
desse projeto. No Windows, você pode realizar a verificação por meio do 
comando dir, conforme apresentado na Figura 14.
Node.js14
Figura 14. Listando os arquivos e diretórios do projeto criado.
Para executar o aplicativo, deve-se iniciar um serviço e, para isso, utiliza-
-se o comando ionic serve, como ilustrado na Figura 15. Certifique-se 
que esse comando seja executado dentro da pasta em que o projeto foi criado, 
nesse caso, myApp. Automaticamente, o navegador será aberto no endereço 
localhost e porta 8100, conforme você pode conferir na Figura 16.
Figura 15. Inicializando o serviço que rodará o aplicativo.
15Node.js
Figura 16. Aplicativo sendo exibido pelo navegador Chrome.
Para visualizar os arquivos do aplicativo, é possível utilizar o editor de 
códigos VSCode. Ao entrar nesse editor, basta abrir a pasta myApp, conforme 
você pode ver na Figura 17.
Node.js16
Figura 17. Visualizando os arquivos do projeto.
Prática com Node.js
Como já foi observado, ao utilizar o Node.js e a linguagem JavaScript, é 
possível que o desenvolvedor crie aplicações que rodem ao lado do servidor, 
como aplicações back-end e Desktop, API, utilitários, etc..
Agora, você verá um exemplo prático da utilização da plataforma Node.js, 
partindo de um código que ilustra como ela pode ser usada para hospedar 
uma página Web HTML estática. Ele foi desenvolvido com o editor de código 
VSCode, conforme você pode conferir na Figura 18.
17Node.js
Figura 18. Criando um servidor com o Node.js.
O código completo, adaptado de https://nodejs.org/en/about, pode ser visto 
a seguir:
const http = require('http');
const hostname = '127.0.0.1';
const port = 2000;
const server = http.createServer((req, res) => {
 res.statusCode = 200;
 res.setHeader('Content-Type', 'text/plain');
 res.end('Ola aluno.\nBem vindo ao capitulo de Node.js!');
});
server.listen(port, hostname, () => {
 console.log(̀ Servidor rodando em: http://${hostname}:${port}/̀ );
});
Explicação do código de exemplo
O trecho de código responsável por incluir o módulo Hypertext Transfer Pro-
tocol (HTTP) do Node.js será demonstrado a seguir, sendo que essa plataforma 
possui várias bibliotecas para trabalhar com os protocolos de rede que já vêm 
por padrão em sua instalação.
const http = require('http');
Node.js18
O trecho a seguir ilustra os parâmetros configurados para o servidor escutar 
as requisições de rede, sendo especificados o nome do host e o número da 
porta do servidor.
const hostname = '127.0.0.1';
const port = 2000;
Veja o método createServer() a seguir, o qual faz parte da biblioteca 
HTTP, responsável por criar outro servidor HTTP. O trecho res.sta-
tusCode = 200; indica uma resposta bem-sucedida; o trecho res.
setHeader('Content-Type', 'text/plain'); determina o cabe-
çalho Content-Type; já o trecho res.end('Ola aluno.\nBem vindo ao 
capitulo de Node.js!'); define a resposta da requisição ao servidor.
const server = http.createServer((req, res) => {
 res.statusCode = 200;
 res.setHeader('Content-Type', 'text/plain');
 res.end('Ola aluno.\nBem vindo ao capitulo de Node.js!');
});
Depois, quando o servidor estiver pronto, uma função de callback será 
chamada informando que ele está em execução.
server.listen(port, hostname, () => {
 console.log(`Servidor rodando em: http://${hostname}:${port}/`);
});
Na Figura 19, você pode observar a execução do código e a mensagem 
exibida pela callback informando que o servidor está rodando. Já na Fi-
gura 20, há a mensagem de retorno do servidor após a requisição ao endereço 
http://127.0.0.1:2000/ pelo navegador.
Figura 19. Servidor em execução.
19Node.js
Figura 20. Retorno do servidor após a requisição.
Neste pequeno exemplo, você aprendeu como utilizar o Node.js para criação 
de uma aplicação servidora, com a linguagem JavaScript.
FREE MOBILE App Development: Getting Started with Ionic Apps. Ionic, Madison, 2019. 
Disponível em: https://ionicframework.com/getting-started#cli. Acesso em: 30 jun. 2019.
KIRAN, R. Node.js Tutorial Series - Getting Started. DotNetCurry, Pune, 17 June 2015. 
Disponível em: https://www.dotnetcurry.com/nodejs/1143/nodejs-tutorial-series-
-beginner-experienced-developer. Acesso em: 30 jun. 2019.
PEREIRA, C. R. Aplicações web real-time com Node.js. São Paulo: Casa do Código, 2013. 
185 p.
VISUAL Studio Code User Interface. Microsoft, Seattle, 2019. Disponível em: https://code.
visualstudio.com/docs/getstarted/userinterface.Acesso em: 30 jun. 2019.
Leituras recomendadas
CAMARGO, L. Node.js — O que é, como funciona e quais as vantagens. Opus Software, 
São Paulo; Toronto; Sorocaba, 5 set. 2018. Disponível em: https://www.opus-software.
com.br/node-js/. Acesso em: 30 jun. 2019.
DESIGN Overview — libuv documentation. The libuv team, [S. l.], 2019. Disponível em: 
http://docs.libuv.org/en/v1.x/design.html. Acesso em: 30 jun. 2019.
INTRODUCTION to Node.js. Github, [S. l.], 2019. Disponível em: https://nodejs.dev/. 
Acesso em: 30 jun. 2019.
Node.js20
IONIC - Cross Platform Mobile App Development. Ionic, Madison, 2019. Disponível em: 
https://ionicframework.com. Acesso em: 30 jun. 2019.
MORAES, W. B. Construindo aplicações com NodeJS. 2. ed. São Paulo: Novatec, 2018. 216 p.
NODE.js: a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js Foun-
dation, [S. l.], 2019. Disponível em: https://nodejs.org. Acesso em: 30 jun. 2019.
O QUE É o NodeJS e quais suas vantagens e desvantagens? ValueHost, São Paulo, 11 
dez. 2018. Disponível em: https://www.valuehost.com.br/blog/o-que-e-o-nodejs/. 
Acesso em: 30 jun. 2019.
RUBENS, J. Primeiros passos com Node.js. São Paulo: Casa do Código, 2017. 195 p.
V8 JavaScript Engine: Google’s open source high-performance JavaScript and We-
bAssembly engine, written in C++. GitHub, [S. l.], 2019. Disponível em: https://v8.dev/. 
Acesso em: 30 jun. 2019.
VISUAL Studio Code. Microsoft, Seattle, 2019. Disponível em: https://code.visualstudio.
com/. Acesso em: 30 jun. 2019.
21Node.js
Dica do professor
Com o Node.js você pode criar diversas aplicações. Aplicações servidoras, APIs, programas 
utilitários, desktop, aplicações de tempo real, chatbots e softwares para inteligência artificial.
Nesta Dica do Professor, você vai ver um exemplo de uma aplicação servidora utilizando o Node.js 
no editor de códigos Visual Studio Code.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/2ea6fca3a174386159a3d40b46764c58
Saiba +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:
Comparação de desempenho e avaliação das tecnologias de 
desenvolvimento Webem PHP, Python e Node.js
Leia o seguinte artigo, o qual tem grande escala, alta simultaneidade e grande quantidade de dados. 
São tendências importantes para a nova geração de websites. O Node.js se torna popular e bem-
sucedido para criar dados intensivos.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
Benchmark entre diferentes linguagens Server-side 
implementando o TUS: protocolo aberto para upload de arquivos 
recuperáveis
O seguinte artigo apresenta um comparativo entre as tecnologias Node.js, Java e Go, apresentando 
as diferenças, os pontos fortes e fracos e a usabilidade.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
Benchmarks do Framework Web
A empresa TechEmpower faz pesquisa com diversas tecnologias web medindo o desempenho delas 
em benchmarks de diversos tipos. Confira.
https://www.researchgate.net/publication/286594024_Performance_Comparison_and_Evaluation_of_Web_Development_Technologies_in_PHP_Python_and_Nodejs?v=661640572
https://seer.cesjf.br/index.php/cesi/article/view/1168/918
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
Aplicação de armazenamento em nuvem utilizando a plataforma 
Node.js
O seguinte artigo apresenta uma aplicação para facilitar o acesso e a manipulação de arquivos de 
usuários utilizando o Node.js.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
https://www.techempower.com/benchmarks/#section=data-r17&hw=ph&test=json?v=94275064
http://revistas.unifenas.br/index.php/RE3C/article/view/160/105

Outros materiais