Sei sulla pagina 1di 6

Simon Holmes

Novatec

Original English language edition published by Manning Publications Co., Copyright 2014 by Manning
Publications. Portuguese-language edition for Brazil copyright 2016 by Novatec Editora. All rights reserved.
Edio original em Ingls publicada pela Manning Publications Co., Copyright 2014 pela Manning Publications.
Edio em Portugus para o Brasil copyright 2016 pela Novatec Editora. Todos os direitos reservados.
Novatec Editora Ltda. 2016.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. proibida a reproduo desta obra, mesmo
parcial, por qualquer processo, sem prvia autorizao, por escrito, do autor e da Editora.
Editor: Rubens Prates PY20160329
Traduo: Henrique Cesar Ulbrich
Reviso gramatical: Smirna Cavalheiro
Assistente editorial: Priscila A. Yoshimatsu
Editorao eletrnica: Carolina Kuwabata
ISBN: 978-85-7522-491-5
Histrico de impresses:
Abril/2016

Primeira edio

Novatec Editora Ltda.


Rua Lus Antnio dos Santos 110
02460-000 So Paulo, SP Brasil
Tel.: +55 11 2959-6529
Email: novatec@novatec.com.br
Site: www.novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec

Sumrio

Prefcio.................................................................................................................................. 9
Agradecimentos.....................................................................................................................12
Sobre este livro......................................................................................................................14

Parte I As primeiras coisas primeiro.................................................................. 18


Captulo 1 Introduo ao desenvolvimento em full-stack.....................................................19
1.1 Mas por que eu deveria aprender a desenvolver em full-stack?.............................. 20
1.2 Uma introduo ao Node.js: um servidor/plataforma web................................... 25
1.3 Express: o Framework........................................................................................ 31
1.4 MongoDB: o Banco de Dados............................................................................. 32
1.5 AngularJS: o framework para o front-end............................................................ 36
1.6 Elenco de apoio.................................................................................................. 40
1.7 Juntando tudo em um exemplo prtico............................................................... 43
1.8 Resumo............................................................................................................. 46

Captulo 2 Projetando uma arquitetura baseada em MEAN...................................................47


2.1 A arquitetura mais comum usada com o MEAN................................................. 47
2.2 Alm das SPAs................................................................................................... 49
2.3 Projetando uma arquitetura MEAN flexvel........................................................ 54
2.4 Planejando uma aplicao no mundo real............................................................ 62
2.5 Desmembrando o desenvolvimento em estgios.................................................. 69
2.6 Arquitetura de hardware.................................................................................... 78
2.7 Resumo............................................................................................................. 81

Parte II Criando uma nova aplicao web no Node.js......................................... 82


Captulo 3 Criando e configurando um projeto MEAN...........................................................83
3.1 Uma breve introduo a Express, Node.js e npm................................................. 85
3.2 Criando um projeto no Express.......................................................................... 88
3.3 Modificando o Express para MVC...................................................................... 97
5

MEAN Definitivo
3.4 Bootstrap: layouts rpidos e responsivos............................................................ 104
3.5 No ar com o Heroku........................................................................................ 109
3.6 Resumo............................................................................................................116

Captulo 4 Construindo um site esttico com Node.js e Express........................................... 117


4.1 Definindo as rotas no Express........................................................................... 119
4.2 Controladores bsicos...................................................................................... 122
4.3 Criando algumas vises................................................................................... 126
4.4 Adicionando mais vises.................................................................................. 140
4.5 Tornando as vises inteligentes......................................................................... 150
4.6 Resumo........................................................................................................... 168

Captulo 5 Construindo um modelo de dados com MongoDB e Mongoose...........................169


5.1 Conectando a aplicao em Express ao MongoDB usando Mongoose................ 171
5.2 Por que modelar os dados?................................................................................ 181
5.3 Definindo schemas simples para o Mongoose.................................................... 187
5.4 Usando o shell do MongoDB para criar um banco e popul-lo com dados.......... 202
5.5 Enviando o banco de dados para o ambiente de produo................................. 209
5.6 Resumo........................................................................................................... 219

Captulo 6 Criando uma API REST: expondo o banco de dados MongoDB para a aplicao.....220
6.1 As regras de uma API REST............................................................................. 221
6.2 Configurando a API no Express........................................................................ 227
6.3 Mtodos GET: lendo dados a partir do MongoDB............................................. 235
6.4 Mtodos POST: inserindo dados no MongoDB.................................................. 253
6.5 Mtodos PUT: atualizando dados no MongoDB................................................ 262
6.6 Mtodos DELETE: apagando dados do MongoDB............................................ 268
6.7 Resumo........................................................................................................... 272

Captulo 7 Clientes API REST: usando a API de dentro do Express.........................................273


7.1 Como chamar uma API a partir do Express........................................................274
7.2 Solicitando listas de dados a uma API: a homepage do Loc8r............................. 278
7.3 Resgatando um nico documento da API: a pgina de detalhes do Loc8r........... 291
7.4 Gravando dados no banco pela API: as resenhas do Loc8r................................. 304
7.5 Protegendo a integridade dos dados com validao............................................ 313
7.6 Resumo............................................................................................................ 322

Parte III Um front-end dinmico com o Angular................................................................323


Captulo 8 Empregando componentes do Angular em uma aplicao no Express.................324
8.1 Conhecendo o Angular..................................................................................... 325
8.2 Mostrando e filtrando a lista de estabelecimentos.............................................. 333

Sumrio

8.3 Obtendo dados da API..................................................................................... 350


8.4 Garantindo o funcionamento dos formulrios................................................... 364
8.5 Resumo........................................................................................................... 365

Captulo 9 Construindo uma aplicao de uma nica pgina com o Angular: fundamentos..366
9.1 Construindo as fundaes para o Angular SPA.................................................. 367
9.2 Transferindo o roteamento do Express para o Angular...................................... 369
9.3 Adicionando as primeiras vises, controladores e servios................................. 375
9.4 Melhorando o desempenho do navegador.......................................................... 393
9.5 Resumo........................................................................................................... 400

Captulo 10 Construindo uma aplicao de uma nica pgina com o Angular: elevando o nvel.402
10.1 Uma SPA autnoma: removendo as dependncias ao servidor.......................... 403
10.2 Adicionando outras pginas e injetando HTML dinamicamente...................... 415
10.3 Vises e rotas mais complexas........................................................................ 423
10.4 Usando componentes do AngularUI para criar um popup modal..................... 435
10.5 Resumo.......................................................................................................... 454

Parte IV Gerenciando autenticao e sesses...................................................455


Captulo 11 Autenticando usurios, gerenciando sees e garantindo a segurana das APIs.456
11.1 Como funciona a autenticao no MEAN........................................................ 457
11.2 Criando um schema no MongoDB para os usurios......................................... 461
11.3 Criando uma API de autenticao com o Passport........................................... 470
11.4 Garantindo a segurana da API....................................................................... 480
11.5 Criando um servio de autenticao no Angular.............................................. 487
11.6 Criando as pginas de cadastro e login............................................................ 492
11.7 Trabalhando com autenticao na aplicao em Angular................................. 501
11.8 Resumo.......................................................................................................... 510

Apndice A Instalando o MEAN..........................................................................................512


A.1 Instalando Node.js e npm................................................................................ 512
A.2 Instalando o Express de forma global................................................................514
A.3 Instalando o MongoDB.....................................................................................514
A.4 Instalando o Angular....................................................................................... 516

Apndice B Instalando e preparando o elenco de apoio......................................................517


B.1 Bootstrap, a ferramenta de templates do Twitter.................................................517
B.2 Git................................................................................................................... 519
B.3 Instalando um terminal de linha de comando mais poderoso............................ 519
B.4 Heroku............................................................................................................ 520

MEAN Definitivo

Apndice C Montando as demais vises.............................................................................521


C.1 Transferindo os dados das vises para os controladores.................................... 521

Apndice D Reaprendendo JavaScript................................................................................529


D.1 Todo mundo sabe JavaScript, certo?................................................................. 529
D.2 Bons e maus hbitos........................................................................................ 532
D.3 Uma introduo ao JSON................................................................................ 550
D.4 JavaScript e seus callbacks............................................................................... 555
D.5 Escrevendo cdigo modular no JavaScript........................................................ 575
D.6 Resumo........................................................................................................... 583

Potrebbero piacerti anche