




























































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Este livro é destinado aos desenvolvedores web que tenham pelo menos conhecimentos básicos de JavaScript e, principalmente, conheçam bem sobre Orientação a Objetos (OO), arquitetura cliente-servidor e que tenham noções das principais características sobre API RESTful.
Tipologia: Esquemas
1 / 188
Esta página não é visível na pré-visualização
Não perca as partes importantes!
67188
© Casa do Código
Todos os direitos reservados e protegidos pela Lei nº9.610, de
Nenhuma parte deste livro poderá ser reproduzida, nem transmitida, sem
autorização prévia por escrito da editora, sejam quais forem os meios:
fotográficos, eletrônicos, mecânicos, gravação ou quaisquer outros.
Casa do Código
Livros para o programador
Rua Vergueiro, 3185 - 8º andar
04101 - 300 – Vila Mariana – São Paulo – S P – Brasil
Casa do Código
Primeiramente, quero agradecer a Deus por tudo que fizeste em minha vida!
Agradeço também ao meu pai e à minha mãe, pelo amor, força, incentivo e
por todo apoio desde o meu início de vida. Obrigado por tudo e, principal-
mente, por estarem ao meu lado em todos os momentos.
Agradeço à Sra. Charlotte Bento de Carvalho, pelo apoio e incentivo nos
meus estudos desde a escola até a minha formatura na faculdade.
Um agradecimento ao meu primo Cláudio Souza. Foi graças a ele que
entrei nesse mundo da tecnologia. Ele foi a primeira pessoa a me apresentar
o computador, e me aconselhou anos depois a entrar em uma faculdade de
Um agradecimento ao Bruno Alvares da Costa, Leandro Alvares da Costa
e Leonardo Pinto, esses caras me apresentaram um mundo novo da área de
desenvolvimento de
software
. Foram eles que me influenciaram a escrever um
blog, a palestrar em eventos, a participar de comunidades e fóruns e, princi-
palmente, a nunca cair na zona de conforto, a aprender sempre. Foi uma
honra trabalhar junto com eles em 2011.
Obrigado ao pessoal da editora Casa do Código, em especial ao Paulo
Silveira, Adriano Almeida e Vivian Matsui. Muito obrigado pelo suporte e
pela oportunidade!
Obrigado à galera da comunidade NodeBR. Seus
feedbacks
ajudaram a
melhorar este livro. Também agradeço a todos os leitores do blog Under-
ground WebDev (http://udgwebdev.com) , afinal, a essência deste livro foi
baseada em muitos dos posts do blog.
Por último, obrigado a você, prezado leitor, por adquirir este livro. Espero
que ele seja uma ótima referência para você.
i
Casa do Código
Sem dúvida muito bom o livro de Node.js, um conteúdo bem prático, com
muitos exemplos e até a construção de um projeto. Isso ajuda muito o leitor,
pois a partir do momento que ele põe a mão na massa, o conteúdo é aprendido
de forma mais fácil. Parabéns!
Apoio demais essa metodologia de aprendizado prático, ainda mais com a
construção de um projeto passo-a-passo. Sem dúvidas, pretendo aprender
também. Obrigado por disponibilizar esse espaço para a nossa opinião.
iv
Casa do Código
Fig. 1: Caio Ribeiro Pereira
Um Web Developer com forte experiência no domínio dessa sopa de le-
trinhas: Node.js, JavaScript, Meteor, Ruby On Rails, Agile, Filosofia Lean,
Scrum, XP, Kanban e TDD.
Bacharel em Sistemas de Informação pela Universidade Católica de San-
tos, blogueiro nos tempos livres, apaixonado por programação, por compar-
tilhar conhecimento, testar novas tecnologias, e assistir filmes e seriados.
Participo das comunidades:
Blog: http://udgwebdev.com.
v
Casa do Código
Este livro é destinado aos desenvolvedores web que tenham pelo menos
conhecimentos básicos de JavaScript e, principalmente, conheçam bem sobre
Orientação a Objetos (OO), arquitetura cliente-servidor e que tenham noções
das principais características sobre API RESTful.
Ter domínio desses conceitos, mesmo que seja um conhecimento básico
deles, será essencial para que a leitura deste livro seja de fácil entendimento.
Algo bem legal do livro é que todos os códigos utilizarão a mais recente
implementação do JavaScript, o EcmaScript 2015 (também conhecido pelos
nomes EcmaScript 6 ou ES6).
Ao decorrer da leitura, serão apresentados diversos conceitos e códigos,
para que você aprenda na prática toda a parte teórica do livro. Ele o guiará de
forma didática no desenvolvimento de dois projetos (uma API e um cliente
web), que no final serão integrados para funcionar como um único projeto.
Você pode discutir sobre este livro no Fórum da Casa do Código: http:
//forum.casadocodigo.com.br/.
Atenção: É recomendado seguir passo a passo as instruções do livro, para
no final você concluir o projeto corretamente.
viii
Capítulo 1
Fig. 1.1: Logo do Node.js
O Node.js é uma plataforma altamente escalável e de baixo nível. Nele, você
vai programar diretamente com diversos protocolos de rede e internet, ou uti-
Casa do Código Capítulo 1. Introduç ão ao Node.js
de eventos do JavaScript client-side; a única diferença são os tipos de even-
tos, ou seja, não existem eventos de
click
do mouse,
keyup
do teclado ou
qualquer evento de componentes do HTML. Na verdade, trabalhamos com
eventos de I/O , como por exemplo: o evento
connect
de um banco de da-
dos, um
open
de um arquivo, um
data
de um streaming de dados e muitos
outros.
Fig. 1.2: Event-Loop do Node.js
O Event-Loop é o agente responsável por escutar e emitir eventos. Na prá-
tica, ele é basicamente um loop infinito que, a cada iteração, verifica em sua
fila de eventos se um determinado evento foi disparado. Quando um evento é
disparado, o Event-Loop executa e o envia para a fila de executados. Quando
um evento está em execução, nós podemos programar qualquer lógica dentro
dele, e isso tudo acontece graças ao mecanismo de
callback
de função do
JavaScript.
1.3. Por que devo aprender Node.js? Casa do Código
1.3 Por que devo aprender Node.js?
guagem de programação
server-side
. Essa característica permite que você
reduza e muito sua curva de aprendizado, afinal, a linguagem é a mesma
do JavaScript
client-side
. Seu desafio nesta plataforma será de aprender a
fundo como funciona a programação assíncrona para se tirar maior pro-
veito dessa técnica em sua aplicação. Outra vantagem de se trabalhar com
JavaScript é que você vai manter um projeto de fácil manutenção – é claro,
desde que saiba programar JavaScript de verdade!
Você terá facilidade em procurar profissionais para seus projetos e gastará
menos tempo estudando uma nova linguagem server-side. Uma vanta-
gem técnica do JavaScript comparador com outras linguagens de back-
end é que você não vai utilizar mais aqueles frameworks de serialização de
objetos JSON (
JavaScript Object Notation ), afinal, o JSON client-side é o
mesmo no server-side. Há também casos de aplicações usando banco de
dados que persistem objetos JSON, um bom exemplo são os NoSQL Mon-
goDB e CouchDB. Outro detalhe importante é que, atualmente, o Node.js
adota diversas funcionalidades da implementação ECMAScript 6, permi-
tindo a codificação de um JavaScript mais elegante e robusto.
mente, existem várias comunidades no mundo inteiro trabalhando muito
para esta plataforma, seja divulgando posts e tutoriais, palestrando em
eventos, ou principalmente publicando e mantendo novos módulos. Aqui
no Brasil, temos três grupos bem ativos:
lários. Isso ocorre pelo fato de que infelizmente no Brasil ainda existem
poucas empresas adotando essa tecnologia. Isso faz com que empresas que
Capítulo 2
Neste capítulo, explicarei como instalar o Node.js nos principais sistemas ope-
racionais (Windows, Linux, MacOSX). Porém, no decorrer do livro, os exem-
plos serão apresentados utilizando um MacOSX.
Apesar de existirem algumas pequenas diferenças de código entre esses
sistemas operacionais, fique tranquilo em relação a esse problema, pois os
exemplos que serão aplicados neste livro são compatíveis com essas platafor-
mas.
Para configurar um ambiente Node.js, independente de qual sistema operaci-
onal, as dicas serão praticamente parecidas. Somente alguns procedimentos
serão diferentes para cada sistema, principalmente para o Linux, mas não será
nada grave.
2.1. Instalaç ão convencional do Node.js Casa do Código
Fig. 2.1: Homepage do Node.js
O primeiro passo é acessar seu site oficial do Node.js: http://nodejs.org.
Em seguida, clique no botão
Install para baixar automaticamente
a última versão compatível com seu sistema operacional Windows ou
MacOSX. Caso você use Linux, recomendo que leia em detalhes a
Wiki do repositório Node.js, em https://github.com/nodejs/node/wiki/
Installing-and-Building-Node.js.
Nessa Wiki, é explicado como instalar de forma compilada para qualquer
distribuição Linux.
Após fazer o download do Node.js, instale-o normalmente. No caso do
Windows e MacOSX, basta clicar no famoso botão
Next
inúmeras vezes até
concluir a instalação, pois não há nenhuma configuração específica para ajus-
tar.
Para testar se tudo esta rodando corretamente, abra o terminal (para
quem usa Linux ou MacOSX), ou prompt de comandos (se possível utilize
o Power Shell) do Windows, e digite o seguinte comando: