Simon Holmes. Novatec

Documentos relacionados
Indira Knight. Novatec

Miguel Grinberg. Novatec

Sumário. Prefácio Capítulo 1 Orientação e primeiras etapas Capítulo 2 Dados: trabalhando com texto e números... 40

Introdução à Programação com Python

Construindo Aplicações Node com MongoDB e Backbone Mike Wilson

Matheus Marabesi Michael Douglas

Introdução à Programação com Python

Ademir C. Gabardo. Novatec

Semmy Purewal. Novatec

Sumário. Parte I Elementos essenciais Sobre o autor Sobre o revisor técnico Prefácio... 14

Adrian Mejia. Novatec

Introdução ao GitHub Peter Bell e Brent Beer

Aditya Y. Bhargava. Novatec

Ryan Mitchell. Novatec

Shyam Seshadri & Brad Green

Jonathan Weber e a equipe da LunaMetrics

WordPress 3 Básico Stephanie Leary

Novatec Editora Ltda

Shelley Powers. Novatec

Julia Elman e Mark Lavin. Novatec

Web Interativa com Ajax e PHP

William Pereira Alves

André Gugliotti. Novatec

Adriano Pataro. Novatec

Benjamin Bengfort Jenny Kim

Arduino Básico. 2ª edição. Michael McRoberts. Novatec

AngularJS. Uma abordagem prática e objetiva. Michael Henrique R. Pereira. Novatec

Novatec Editora Ltda

David Hows Peter Membrey Eelco Plugge

Aprenda a Programar com Minecraft

Ademir Ribeiro dos Passos

Osvaldo Santana Thiago Galesi

Ademir Cristiano Gabardo. Novatec

Ben Vinegar Anton Kovalyov

Brandon Rhodes John Goerzen

Primeiros Passos com o Netduino

Métricas. Como melhorar os principais resultados de sua empresa. Martin Klubeck. Novatec

Aravind Shenoy Anirudh Prabhu

Guia Mangá Circuitos Eletrônicos

Novatec Editora Ltda

Arduino Básico Michael McRoberts

Desenvolvendo Websites com PHP

Allan Liska e Timothy Gallo. Novatec

Jody Culkin e Eric Hagan

Guia Mangá Motores elétricos

Ricardo R. Lecheta. Novatec

Ricardo R. Lecheta. Novatec

Editor: Rubens Prates PY Editoração eletrônica: Carolina Kuwabata Revisão gramatical: Patrizia Zagni Capa: Edinei Gonçalves/Carolina Kuwabata

Adrian Mouat. Novatec

Wolfram Donat. Novatec

Chris Binnie. Novatec

Hélio Engholm Jr. Novatec

Raspberry Pi Manual do Usuário

PHP. Programando com Orientação a Objetos. Pablo Dall Oglio. Novatec

André Gugliotti. Novatec

Maurício Samy Silva. Novatec

Introdução às. Expressões Regulares. Michael Fitzgerald. Novatec

Guia Prático Richard E. Silverman

Harrison Kinsley Will McGugan

Objective-C Fundamental Christopher K. Fairbairn Johannes Fahrenkrug Collin Ruffenach

Aaron Newcomb. Novatec

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI 2a Edição Maurício Samy Silva Novatec

Edécio Fernando Iepsen

Allen B. Downey. Novatec

Primeiros Passos com o Arduino

Copyright 2015 da Novatec Editora Ltda.

Karl Matthias Sean P. Kane

Novatec Editora Ltda

Jarrod Overson e Jason Strimpel

A Arte de Escrever Programas Legíveis

3ª Edição Nilo Ney Coutinho Menezes

Zend. Framework. Componentes Poderosos para PHP. Flávio Gomes da Silva Lisboa. Novatec

Desenvolvimento para Web com Java

Editor: Rubens Prates Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata Assistente editorial: Priscila A.

Ademir C. Gabardo. Novatec

jquery Mobile Desenvolva aplicações web para dispositivos móveis com HTML5, CSS3, AJAX, jquery e jquery UI Maurício Samy Silva Novatec

Rodrigo de Barros Paes

Wellington Figueira da Silva. Novatec

John Paul Mueller. Novatec

Blender 3D jogos e animações interativas Allan Brito

Programando para. iphone e ipad. Aprenda a construir aplicativos para o ios. André Milani. Novatec

Adrian Pruteanu. Novatec

Crie Seu Próprio Site

Guia Mangá FISIOLOGIA. Etsuro Tanaka, Keiko Koyama, e Becom Co., Ltd. Novatec

Criando Relatórios com PHP Pablo Dall Oglio

Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen

Guia Mangá Circuitos Eletrônicos

Chris Goward. Novatec

Programando com ASP.NET MVC. Aprenda a desenvolver aplicações web utilizando a arquitetura MVC. Alfredo Lotar. Novatec

JavaScript. de Alto Desempenho. Nicholas C. Zakas. Novatec

Daniel Marcos Cunha Pereira

Jessey Bullock Jeff T. Parker

Primeiros Passos com o Raspberry Pi

Análise de Regressão

Guia Mangá. Álgebra Linear. Shin Takahashi, Iroha Inoue e Trend-Pro Co., Ltd. novatec

Desenvolvimento de Grandes Aplicações Web

marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec

John Resig Bear Bibeault

Luiz Eduardo Borges. Novatec

4ª Edição Pablo Dall Oglio

Transcrição:

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. Edição original em Inglês publicada pela Manning Publications Co., Copyright 2014 pela Manning Publications. Edição em Português 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 reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates PY20160329 Tradução: Henrique Cesar Ulbrich Revisão gramatical: Smirna Cavalheiro Assistente editorial: Priscila A. Yoshimatsu Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-491-5 Histórico de impressões: Abril/2016 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 São 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

Sumário Prefácio... 9 Agradecimentos...12 Sobre este livro...14 Parte I As primeiras coisas primeiro... 18 Capítulo 1 Introdução ao desenvolvimento em full-stack...19 1.1 Mas por que eu deveria aprender a desenvolver em full-stack?... 20 1.2 Uma introdução 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 prático... 43 1.8 Resumo... 46 Capítulo 2 Projetando uma arquitetura baseada em MEAN...47 2.1 A arquitetura mais comum usada com o MEAN... 47 2.2 Além das SPAs... 49 2.3 Projetando uma arquitetura MEAN flexível... 54 2.4 Planejando uma aplicação no mundo real... 62 2.5 Desmembrando o desenvolvimento em estágios... 69 2.6 Arquitetura de hardware... 78 2.7 Resumo... 81 Parte II Criando uma nova aplicação web no Node.js... 82 Capítulo 3 Criando e configurando um projeto MEAN...83 3.1 Uma breve introdução a Express, Node.js e npm... 85 3.2 Criando um projeto no Express... 88 3.3 Modificando o Express para MVC... 97 5

6 MEAN Definitivo 3.4 Bootstrap: layouts rápidos e responsivos... 104 3.5 No ar com o Heroku... 109 3.6 Resumo...116 Capítulo 4 Construindo um site estático com Node.js e Express... 117 4.1 Definindo as rotas no Express... 119 4.2 Controladores básicos... 122 4.3 Criando algumas visões... 126 4.4 Adicionando mais visões... 140 4.5 Tornando as visões inteligentes... 150 4.6 Resumo... 168 Capítulo 5 Construindo um modelo de dados com MongoDB e Mongoose...169 5.1 Conectando a aplicação 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 produção... 209 5.6 Resumo... 219 Capítulo 6 Criando uma API REST: expondo o banco de dados MongoDB para a aplicação...220 6.1 As regras de uma API REST... 221 6.2 Configurando a API no Express... 227 6.3 Métodos GET: lendo dados a partir do MongoDB... 235 6.4 Métodos POST: inserindo dados no MongoDB... 253 6.5 Métodos PUT: atualizando dados no MongoDB... 262 6.6 Métodos DELETE: apagando dados do MongoDB... 268 6.7 Resumo... 272 Capítulo 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 página 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 validação... 313 7.6 Resumo... 322 Parte III Um front-end dinâmico com o Angular...323 Capítulo 8 Empregando componentes do Angular em uma aplicação no Express...324 8.1 Conhecendo o Angular... 325 8.2 Mostrando e filtrando a lista de estabelecimentos... 333

Sumário 7 8.3 Obtendo dados da API... 350 8.4 Garantindo o funcionamento dos formulários... 364 8.5 Resumo... 365 Capítulo 9 Construindo uma aplicação de uma única página com o Angular: fundamentos..366 9.1 Construindo as fundações para o Angular SPA... 367 9.2 Transferindo o roteamento do Express para o Angular... 369 9.3 Adicionando as primeiras visões, controladores e serviços... 375 9.4 Melhorando o desempenho do navegador... 393 9.5 Resumo...400 Capítulo 10 Construindo uma aplicação de uma única página com o Angular: elevando o nível.402 10.1 Uma SPA autônoma: removendo as dependências ao servidor... 403 10.2 Adicionando outras páginas e injetando HTML dinamicamente... 415 10.3 Visões e rotas mais complexas... 423 10.4 Usando componentes do AngularUI para criar um popup modal... 435 10.5 Resumo... 454 Parte IV Gerenciando autenticação e sessões...455 Capítulo 11 Autenticando usuários, gerenciando seções e garantindo a segurança das APIs.456 11.1 Como funciona a autenticação no MEAN... 457 11.2 Criando um schema no MongoDB para os usuários... 461 11.3 Criando uma API de autenticação com o Passport... 470 11.4 Garantindo a segurança da API... 480 11.5 Criando um serviço de autenticação no Angular... 487 11.6 Criando as páginas de cadastro e login... 492 11.7 Trabalhando com autenticação na aplicação em Angular... 501 11.8 Resumo... 510 Apêndice 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 Apêndice 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

8 MEAN Definitivo Apêndice C Montando as demais visões...521 C.1 Transferindo os dados das visões para os controladores... 521 Apêndice D Reaprendendo JavaScript...529 D.1 Todo mundo sabe JavaScript, certo?... 529 D.2 Bons e maus hábitos... 532 D.3 Uma introdução ao JSON... 550 D.4 JavaScript e seus callbacks... 555 D.5 Escrevendo código modular no JavaScript... 575 D.6 Resumo... 583