Shelley Powers. Novatec

Documentos relacionados
Primeiros Passos com Sensores Kimmo Karvinen Tero Karvinen

Benjamin Bengfort Jenny Kim

Primeiros Passos com o Arduino

Adrian Mouat. Novatec

Novatec Editora Ltda

Guia Prático Richard E. Silverman

Simon Holmes. Novatec

Ademir Cristiano Gabardo. Novatec

Primeiros Passos com o Arduino Massimo Banzi

Primeiros Passos com o Raspberry Pi

Julia Elman e Mark Lavin. Novatec

A Arte de Escrever Programas Legíveis

Novatec Editora Ltda. [2014].

Guia Mangá Circuitos Eletrônicos

Desenvolvimento de Grandes Aplicações Web

Criando Relatórios com PHP Pablo Dall Oglio

Jessey Bullock Jeff T. Parker

Arduino Básico Michael McRoberts

Desenvolvendo Websites com PHP

Rodrigo de Barros Paes

Pedro Monteiro da Silva Eleutério Marcio Pereira Machado. Novatec

Jonathan Stark Brian Jepson

Design Centrado no Usuário

Aprenda a Programar com Minecraft

Aprendendo. Unix no OS X. Mountain Lion. Mergulhando no Terminal e no Shell. Dave Taylor. Novatec

Guia Mangá Motores elétricos

Christopher Duffy. Novatec

Google Analytics Justin Cutroni

Guia Mangá Circuitos Eletrônicos

David Hows Peter Membrey Eelco Plugge

Brandon Rhodes John Goerzen

Pete Goodliffe. Novatec

Padrões de Projeto em PHP

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

WordPress 3 Básico Stephanie Leary

PDF Explicado John Whitington

Novatec Editora Ltda

Allan Liska Geoffrey Stowe

Padrões JavaScript Stoyan Stefanov

A Arte de SEO. Eric Enge, Stephan Spencer, Jessie Stricchiola e Rand Fishkin Introdução de John Battelle. Novatec

Ricardo R. Lecheta. Novatec

Aprendendo Programação. ios. Alasdair Allan. Novatec

Ademir C. Gabardo. Novatec

Josh Pauli Revisão técnica Scott White. Novatec

Pramod J. Sadalage Martin Fowler

Aprendendo Cocoa com Objective-C Paris Buttfield-Addison Jonathon Manning

jquery Cookbook Comunidade de Desenvolvedores jquery

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

Josh Lockhart. Novatec

Defenda sua base com circuitos simples, Arduino e Raspberry Pi

As Leis Fundamentais do Projeto de Software

Crie Seu Próprio Site

Josh Lockhart. Novatec

Equipes de Software. Um guia para o desenvolvedor de software se relacionar melhor com outras pessoas. Brian W. Fitzpatrick Ben Collins-Sussman

Empresa. Dave Gray. Novatec. com Thomas Vander Wal

Ricardo R. Lecheta. Novatec

João Eriberto Mota Filho

Desenvolvendo para. Windows 8. Aprenda a desenvolver aplicativos para Windows Phone 8 e Windows 8. Ricardo R. Lecheta. Novatec

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

Introdução à Programação com Python

Harrison Kinsley Will McGugan

Introdução à Programação com Python

Adrian Mejia. Novatec

Scrum em Ação. Gerenciamento e Desenvolvimento Ágil de Projetos de Software. Andrew Pham Phuong-Van Pham. Novatec

Desenvolvimento de Grandes Aplicações Web

Ricardo Lino Olonca. Novatec

Excel Avançado. 2ª Edição. Antonio Fernando Cinto Wilson Moraes Góes. Novatec

Criando Relatórios com PHP

Ademir C. Gabardo. Novatec

Mineração de dados da web social Matthew A. Russell

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

Adail Henrique Spínola Horst Aécio dos Santos Pires André Luis Boni Déo. Novatec

Ricardo Kléber M. Galvão. Novatec

Lojas Virtuais com. Magento. André Nobrega Gugliotti. Novatec

Keith Wood. Apresentação de Dave Methvin. Novatec

Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec

Adail Henrique Spínola Horst Aécio dos Santos Pires André Luis Boni Déo. Novatec

Hélio Engholm Jr. Novatec

Gerenciamento. de projetos. Bart Gerardi. Novatec. Como evitar problemas previsíveis para o sucesso do projeto

Como melhorar a performance de websites.net

Desenvolvendo Websites com PHP

2ª edição. Daniel Adorno Gomes. Novatec

André Gugliotti. Novatec

Laboratórios de Tecnologias. Cisco. em Infraestrutura de Redes. Samuel Henrique Bucke Brito. Novatec

Guia do Programador Joel Saade

3 a edição. Walter Cybis Adriana Holtz Betiol Richard Faust. Novatec

A Arte de Escrever Programas Legíveis

Daniel Moreno. Novatec

Programando o Android Zigurd Mednieks, Laird Dornin, G. Blake Meike e Masumi Nakamura

Larry Ullman. Novatec

Criando Aplicações Gráficas com PHP

Johnny Long Bill Gardner Justin Brown

Guia Definitivo de. . DJ Waldow Jason Falls. Tradução Aline Naomi Sassaki. Novatec

Ricardo R. Lecheta. Novatec

Desenvolvendo Websites com PHP

Nelson Glauber de Vasconcelos Leal

2ª Edição Alexandre Keller

Programação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.

Transcrição:

Shelley Powers Novatec

Authorized Portuguese translation of the English edition of Learning Node, 2nd Edition, ISBN 9781491943120 2016 Shelly Powers. This translation is published and sold by permission of O'Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Tradução em português autorizada da edição em inglês da obra Learning Node, 2nd Edition, ISBN 9781491943120 2016 Shelly Powers. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de todos os direitos para publicação e venda desta obra. Novatec Editora Ltda. 2017. 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 Tradução: : Henrique Cesar Ulbrich/Design for Context Revisão gramatical: Priscila A. Yoshimatsu Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-540-0 Histórico de impressões: Janeiro/2017 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 Capítulo 1 Ambiente do Node... 18 Instalando o Node...19 Diga olá mundo com o Node...20 Um Hello World básico...20 Um Hello World tunado...24 Opções de linha de comando do Node...27 Ambientes de hospedagem do Node...29 Hospedando o Node em seu próprio servidor, VPS ou provedor de hospedagem...29 Nas nuvens...30 Node: a versão LTS e o processo de atualização...31 A nova semântica de versões do Node...32 Atualizando o Node...33 Node, V8 e ES6...35 Avançado: os complementos do Node em C/C++...36 Capítulo 2 Blocos de construção do Node: objetos globais, eventos e sua natureza assíncrona... 38 Objetos global e process...39 Objeto global...39 Objeto process...41 Buffers, typed arrays e strings...45 Buffer, JSON, StringDecoder e strings em UTF-8...48 Manipulação de buffers...50 Gerenciamento de callbacks e eventos assíncronos no Node...53 Fila de eventos (loop)...54 Criando uma função assíncrona de callback...57 EventEmitter...61 O laço de eventos do Node e os temporizadores...65 Callbacks aninhados e tratamento de exceções...69 5

6 Aprendendo Node Capítulo 3 Introdução aos módulos do Node e ao Node Package Manager (npm)... 79 Introdução ao sistema de módulos do Node...79 Como o Node encontra um módulo e o carrega na memória... 80 O módulo VM e as caixas de areia... 84 Conhecendo o NPM a fundo...89 Criando e publicando seu próprio módulo do Node...95 Criando um módulo...95 Empacotando uma pasta por completo... 96 Preparando o módulo para publicação...97 Publicando seu módulo...102 Descobrindo módulos interessantes para o Node, incluindo três imperdíveis...103 Async, um módulo para gerenciamento eficiente de callbacks...105 Commander: fazendo mágica no terminal...112 O onipresente Underscore... 114 Capítulo 4 Tornando o Node interativo com o REPL e o poder do console...116 REPL: primeiras impressões e expressões indefinidas... 117 Benefícios do REPL: entendendo o JavaScript por debaixo dos panos...119 JavaScript mais complexo e com várias linhas...120 Comandos do REPL...125 REPL e rlwrap...126 Um REPL para chamar de seu...127 Acidentes acontecem salve com frequência...132 O onipresente console...133 Tipos de mensagem no console, a classe Console e o bloqueio de processamento..133 Formatando a mensagem com util.format() e util.inspect()...135 Mensagens mais ricas com o console e um temporizador...140 Capítulo 5 Node e a web... 142 Módulo HTTP: servidor e cliente...142 O que é necessário para criar um servidor web estático?...148 O Apache como proxy de uma aplicação Node...158 Analisando uma solicitação com Query String...160 DNS...161 Capítulo 6 Node e o sistema de arquivos local... 164 Explorando o sistema operacional...164 Fluxos e redirecionamentos...166 Uma introdução formal ao módulo File System...169 Classe fs.stats...170

Sumário 7 Monitor de sistema de arquivos...171 Leitura e escrita de arquivos...173 Acesso e administração de pastas...175 Usando fluxos em arquivos... 176 Acesso a recursos com o módulo Path...178 Criando um comando para usar no terminal...181 Compactação é com o ZLib...183 Readline e os redirecionamentos com pipe()...187 Capítulo 7 Redes, sockets e segurança... 190 Servidores, fluxos e sockets...190 Sockets e fluxos...190 Sockets e servidores TCP...191 Sockets para datagramas UDP...197 Sentinelas nos portões...199 TLS/SSL...199 Trabalhando com HTTPS...201 Módulo Crypto...204 Capítulo 8 Processos-filho... 210 child_process.spawn...210 child_process.exec e child_process.execfile... 214 child_process.fork...217 Executando uma aplicação com processos-filho no Windows...218 Capítulo 9 Node e o ES6... 221 Modo strict...221 let e const...223 Funções arrow...226 Classes...228 As promessas de um pássaro azul...231 Capítulo 10 Desenvolvimento full-stack com Node... 235 Framework de aplicação Express...236 Sistemas de banco de dados MongoDB e Redis...243 MongoDB...243 Redis: um repositório de chaves/valores...247 AngularJS e outros frameworks full-stack...256

8 Aprendendo Node Capítulo 11 Node nos ambientes de desenvolvimento e de produção... 264 Depurando aplicações Node...264 Depurador do Node...265 Node Inspector...270 Testes de unidade...273 Testes de unidade com o Assert... 274 Testes de unidade com o Nodeunit...278 Outros frameworks de teste...280 Mantendo o Node executando...283 Benchmark e testes de carga com o Apache Bench...287 Capítulo 12 Node em novos ambientes... 290 IoT da Samsung e GPIO...290 Windows com Chakra Node...292 Node para microcontroladores e microcomputadores...294 Fritzing...295 Node e Arduino... 300 Node e Raspberry Pi 2...307