Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


NodeJs para desenvolvedores, Notas de estudo de Programação em Windows

Uma breve introduçao ao NodeJS

Tipologia: Notas de estudo

2019

Compartilhado em 26/09/2019

m-suort
m-suort 🇧🇷

1 documento

1 / 32

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Colin J. Ihrig
Pro Node.js para
Desenvolvedores
Tradução:
Angelo Giuseppe Meira Costa (angico)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20

Pré-visualização parcial do texto

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)

        

             ©    

        ! "#   © $   %

&     '

( )    ' *   #  )  ' 

  • +  ) , )-  !.     )  /'  #01     

    /  &+        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