Baixe NodeJs para desenvolvedores e outras Notas de estudo em PDF para Programação em Windows, somente na Docsity!
Colin J. Ihrig
Pro Node.js para
Desenvolvedores
Tradução:
Angelo Giuseppe Meira Costa (angico)
©
! "# © $ %
& '
( ) ' * # ) '
/ &+ 2 &+ 3 4 + % & 5 7 8 & 5 3 9
2 ) ' & + ) ) ) !) + ) :01 )) ) ) # ) ! ) !; : ' & < ) 01 ! #01 = + ) 0 ) ) . ) ) %
!"#
< 9> % & ? $
@ A; 4"(> BCD DE BB EE 33 001642
$ % % &'() + &+), -.%/0.120. 3-24--.21(((-5 63-24--.21(7/( 1 8 %!%, 999 % %!%,.(52'*
Sobre o Revisor Técnico
Andy Olsen é consultor/treinador freelance residente no Reino Unido, e tem
trabalhado em sistemas distribuídos há 20 anos. Andy começou a trabalhar em C, em
meados da década de 1980, mas pode muito bem ter sido em meados da década de
1880, pois parece há muito tempo. Andy migrou para o C++, para o Java, e para o
.NET conforme os tempos e as modas mudavam, e é atualmente mantido ocupado
(demais?) em sistemas baseados na web, tanto do lado cliente quanto do lado servidor.
Andy mora no litoral de Swansea e curte correr, cafeterias e observar os cisnes.
Agradecimentos
Eu gostaria de agradecer a todos os que ajudaram a tornar este livro possível.
Agradecimentos especiais a Mark Powers e Ewan Buckingham, da equipe editorial da
Apress. Também gostaria de agradecer ao revisor técnico, Andy Olsen, por seu valioso
feedback. É claro que muitos agradecimentos vão para meus amigos e minha família.
Sumário
- Capítulo
- Começando ..........................................................................................
- O Modelo de Execução do Node
- Instalando o Node
- Instalando Através de Gerenciadores de Pacotes ......................................................
- Construindo a Partir do Fonte ................................................................................
- Passos Finais da Instalação ......................................................................................
- O Laço Ler-Avaliar-Imprimir..............................................................................
- Funcionalidades do REPL ......................................................................................
- Comandos do REPL...............................................................................................
- Executando Programas Node
- Resumo - Capítulo
- O Sistema de Módulos de Node ........................................................
- Instalando Pacotes.........................................................................................
- Instalando de URLs ..............................................................................................
- Localizações de Pacotes .........................................................................................
- Pacotes Globais.....................................................................................................
- Ligando Pacotes ....................................................................................................
- Removendo Ligações de Pacotes ...........................................................................
- Atualizando Pacotes ..............................................................................................
- Desinstalando Pacotes...........................................................................................
- A função require()
- Módulos Centrais ................................................................................................. XII Pro Node.js para Desenvolvedores
- Módulos de Arquivos............................................................................................
- Processamento de Extensões de Arquivo ...............................................................
- Resolvendo a Localização de um Módulo .............................................................
- Cacheamento de Módulos ....................................................................................
- O arquivo package.json
- Descrição e Palavras-Chave ...................................................................................
- Autor e Contribuintes ..........................................................................................
- O Ponto de Entrada Principal ...............................................................................
- O Ajuste preferGlobal ..........................................................................................
- Dependências .......................................................................................................
- Dependências de Desenvolvimento ......................................................................
- Dependências Opcionais ......................................................................................
- Engines.................................................................................................................
- Scripts ..................................................................................................................
- Campos Adicionais ...............................................................................................
- Gerando um Arquivo package.json .......................................................................
- Um exemplo completo
- Autoria de Módulos
- O Objeto module .................................................................................................
- Publicando no npm ..............................................................................................
- Resumo - Capítulo
- O Modelo de Programação do Node .................................................
- Programação Assíncrona................................................................................
- O Inferno da Rechamada......................................................................................
- Tratamento de Exceções.................................................................................
- Domínios ............................................................................................................
- Conexão Explícita ................................................................................................
- O módulo async.............................................................................................
- Executando em Série ............................................................................................
- Tratando Erros......................................................................................................
- Execução em Paralelo............................................................................................
- Limitando o Paralelismo .......................................................................................
- O Modelo Cascata ................................................................................................
- O Modelo de Fila ................................................................................................. Sumário XIII
- Métodos e Propriedades Adicionais de Filas ..........................................................
- Métodos de Repetição ..........................................................................................
- Variações de Repetição .........................................................................................
- Funcionalidades Adicionais de async.....................................................................
- Resumo - Capítulo
- Eventos e Temporizadores .................................................................
- Emissores de Eventos ........................................................................ - Escutando Eventos ............................................................................................... - Escutadores de Eventos de Instante ....................................................................... - Inspecionando Escutadores de Eventos ................................................................. - O evento newListener ........................................................................................... - Removendo Tratadores de Eventos ........................................................................ - Detectando Potenciais Vazamentos de Memória ................................................... - Herdando de Emissores de Eventos....................................................................... - Usando Eventos para Evitar o Inferno da Rechamada ...........................................
- Temporizadores e Agendamento....................................................................
- Intervalos..............................................................................................................
- Os Métodos ref() e unref() ....................................................................................
- Imediatas ..............................................................................................................
- Dividindo Tarefas de Execução Demorada ............................................................
- Agendamento com process.nextTick() ..................................................................
- Implementando Funções Assíncronas de Rechamada ............................................
- Mantendo Comportamento Consistente ..............................................................
- Resumo - Capítulo
- A Interface de Linha de Comandos ...................................................
- Argumentos de Linha de Comandos
- Processando Valores de Argumentos .....................................................................
- Argumentos de Linha de Comandos no Commander ...........................................
- Ajuda Gerada Automaticamente ...........................................................................
- Os Fluxos Padrões.......................................................................................... XIV Pro Node.js para Desenvolvedores
- A Entrada Padrão .................................................................................................
- A Saída Padrão .....................................................................................................
- Outras Funções de Impressão ...............................................................................
- O Erro Padrão ......................................................................................................
- A Interface TTY ...................................................................................................
- Determinando o Tamanho do Terminal ................................................................
- Eventos de Sinais ..................................................................................................
- Variáveis Ambientais do Usuário...........................................................................
- Resumo - Capítulo
- O sistema de arquivos .......................................................................
- Caminhos Relevantes.....................................................................................
- O Diretório Atual de Trabalho..............................................................................
- Mudando o Diretório Atual de Trabalho...............................................................
- Localizando o Executável Node .....................................................................................
- O Módulo path
- Diferenças Entre Plataformas ................................................................................
- Extraindo Componentes do Caminho ..................................................................
- Normalização de Caminhos ................................................................................
- Resolvendo um Caminho Relativo entre Diretórios ............................................
- O módulo fs
- Determinando se um Arquivo Existe ..................................................................
- Recuperando Estatísticas de Arquivos .................................................................
- Outras Variações de stat() .......................................................................................
- Abrindo Arquivos ...............................................................................................
- Lendo Dados de Arquivos ..................................................................................
- Os Métodos e ..........................................................
- Escrevendo Dados Em Arquivos .........................................................................
- Os Métodos e .....................................................
- Fechando Arquivos .............................................................................................
- Renomeando Arquivos .......................................................................................
- Excluindo Arquivos ............................................................................................
- Criando Diretórios .............................................................................................
- Lendo o Conteúdo de um Diretório ...................................................................
- Removendo Diretórios .......................................................................................
- Vigiando Arquivos ..............................................................................................
- Resumo - Capítulo Sumário XV
- Fluxos ..............................................................................................
- Que são Fluxos?...........................................................................................
- Trabalhando com Fluxos
- Fluxos de Leitura
- Eventos data .................................................................................................................
- O Evento ................................................................................................................
- O Evento ...........................................................................................................
- Eventos error ..............................................................................................................
- Controlando Fluxos de Leitura ...........................................................................
- Fluxos de Escrita.................................................................................................
- O Método write() .....................................................................................................
- O Método ..........................................................................................................
- O Evento ...........................................................................................................
- O Evento ...........................................................................................................
- Os Eventos e error ........................................................................................
- Um Exemplo de Fluxo de Escrita........................................................................
- Pipes
- O Método pipe() .......................................................................................................
- De Volta ao Exemplo do Fluxo de Escrita ...........................................................
- Fluxos de Arquivos - ....................................................................................
- O Evento de ...............................................................................
- O Argumento ...............................................................................................
- ..................................................................................
- O Evento de .............................................................................
- A Propriedade ...................................................................................
- Compressão usando o Módulo
- Deflate/Inflate e DeflateRaw/InflateRaw.............................................................
- Métodos de Conveniência ..................................................................................
- Resumo - Capítulo XVI Pro Node.js para Desenvolvedores
- Dados binários.................................................................................
- Visão Geral de Dados Binários - Terminação......................................................................................................... - Determinando a Terminação .............................................................................. - A Especificação de Matriz Tipificada................................................................... - Arraybuffers ........................................................................................................ - Vistas de a .................................................................................... - Observação Sobre Dimensionamento de Vistas................................................... - Informação do Construtor .................................................................................. - Criando uma Vista Vazia .................................................................................... - Criando uma Vista a Partir de Valores de Dados ................................................. - Criando uma Vista a Partir de Outra .................................................................. - Propriedades das Vistas ....................................................................................... - Os Buffers de Node ............................................................................................ - O Construtor de ................................................................................... - Métodos de Transformação em String ................................................................. - Escrevendo Dados Numéricos ............................................................................ - Lendo Dados Numéricos .................................................................................... - Compatibilidade com Matrizes Tipificadas .........................................................
- Resumo - Capítulo
- Executando código ..........................................................................
- O módulo .................................................................................
- .................................................................................................................
- ........................................................................................................
- ...............................................................................................................
- A Opção stdio .................................................................................................
- A Classe
- O Evento error
- O Evento exit
- O Evento
- A Propriedade pid....................................................................................
- !
- fork()
- - O Módulo " .................................................................................................... Sumário XVII
- # $
- # %
- #
- Resumo - Capítulo
- Programação para Redes .................................................................
- Soquetes
- Programação Cliente-Servidor......................................................................
- O Protocolo de Controle de Transmissão - Criando um Servidor TCP ................................................................................. - Escutando Conexões........................................................................................... - address() ............................................................................................................. - Variações de ..................................................................................... - Tratando Conexões ............................................................................................. - Encerrando o Servidor ........................................................................................ - ref()e unref() ....................................................................................................... - Eventos error ................................................................................................... - Criando um Cliente TCP ................................................................................... - A Classe & !.............................................................................. - Endereços Locais e Remotos ............................................................................... - Fechando um Soquete ........................................................................................ - Expiração............................................................................................................ - Soquetes, Servidores e Processos Filhos ...............................................................
- O Protocolo de Datagrama de Usuário - Criando Soquetes UDP ...................................................................................... - Ligando-se a uma Porta ...................................................................................... - Recebendo Dados ............................................................................................... - Enviando Dados .................................................................................................
- O Sistema de Nomes de Domínio................................................................. - Fazendo Buscas ................................................................................................... - " ....................................................................................................... - Buscas Inversas ................................................................................................... - Detectando um Endereço IP Válido....................................................................
- Resumo - Capítulo XVIII Pro Node.js para Desenvolvedores
- HTTP ................................................................................................
- Um Servidor Básico......................................................................................
- Anatomia de uma requisição HTTP
- Métodos de Requisição .......................................................................................
- Cabeçalhos de Requisição ...................................................................................
- Códigos de Resposta ...........................................................................................
- Cabeçalhos de Resposta ......................................................................................
- Trabalhando com cookies
- Middleware
- Connect
- Emitindo requisições HTTP
- Dados de Formulários ........................................................................................
- Objetos Aninhados .............................................................................................
- O módulo ' ..........................................................................................
- Cookies em ' ........................................................................................
- HTTPS
- Resumo - Capítulo
- A estrutura Express..........................................................................
- Rotas do Express
- Parâmetros de Rota .............................................................................................
- Criando um Aplicativo Express
- Examinando o Aplicativo Esqueleto....................................................................
- Gabaritagem
- O Express-Validator
- REST
- Uma API RESTful de Exemplo .......................................................................... Sumário XIX
- Testando a API ...................................................................................................
- Resumo - Capítulo
- A Web em Tempo Real .....................................................................
- A API de WebSockets
- Abrindo um WebSocket .....................................................................................
- Fechando WebSockets ........................................................................................
- Verificando o Estado de um WebSocket..............................................................
- O evento ...................................................................................................
- O evento * ............................................................................................
- O evento .................................................................................................
- O evento error.................................................................................................
- Enviando Dados .................................................................................................
- WebSockets no Node
- Um cliente de WebSockets .................................................................................
- Um cliente HTML .............................................................................................
- Examinando a Conexão WebSocket....................................................................
- Socket.IO
- Criando um Servidor !&#+ .....................................................................
- Criando um Cliente !&#+.......................................................................
- !&#+ e Express ........................................................................................
- Resumo - Capítulo
- Bases de dados ................................................................................
- Bases de Dados Relacionais
- O MySQL
- Conectando-se ao MySQL .................................................................................
- Agrupamento de Conexões .................................................................................
- Fechando uma Conexão .....................................................................................
- Executando Consultas ........................................................................................
- Bases de Dados NoSQL XX Pro Node.js para Desenvolvedores
- O MongoDB ......................................................................................................
- Conectando-se com o MongoDB .......................................................................
- Esquemas ...........................................................................................................
- Modelos .............................................................................................................
- Inserindo Dados .................................................................................................
- Consultando Dados ............................................................................................
- Métodos Construtores de Consultas ...................................................................
- Atualizando Dados .............................................................................................
- Excluindo Dados ................................................................................................
- Resumo - Capítulo
- Registrando, Depurando e Testando ...............................................
- Registrando
- O Módulo ..........................................................................................
- Transportes .........................................................................................................
- Criando Novos Registradores..............................................................................
- Depurando
- O módulo , ...........................................................................
- Testando......................................................................................................
- O Módulo assert ............................................................................................
- O Método throws()........................................................................................
- O Método %$ ...........................................................................
- O Método ifError() ......................................................................................
- A Estrutura de Testes Mocha ..............................................................................
- Rodando o Mocha ..............................................................................................
- Criando Testes ....................................................................................................
- Criando Suítes de Testes .....................................................................................
- Testando Código Assíncrono ..............................................................................
- Definindo uma Falha ..........................................................................................
- Ganchos de Testes...............................................................................................
- Desativando Testes..............................................................................................
- Rodando uma única Suíte de Testes ....................................................................
- Resumo