Construindo Aplicações com NodeJS – 4ª Edição

Construindo Aplicações com NodeJS – 4ª Edição
× Construindo Aplicações com NodeJS – 4ª Edição

Construindo Aplicações com NodeJS – 4ª Edição

Compartilhar

Autor: William Bruno Moraes

ISBN impresso: 978-85-7522-878-4
ISBN ebook: 978-85-7522-879-1
Ano: 2023
Páginas: 304
Preço impresso: R$ 89,00 O ebook deste livro está disponível na Amazon.

1 opinião | Opine sobre este livro

Descrição do livro

O NodeJS é uma poderosa plataforma para construir de forma rápida e fácil aplicações de rede escaláveis. Utiliza um modelo de single thread, faz I/O não bloqueante, por isso trabalha sempre de forma assíncrona.

Neste livro, você aprenderá a construir uma API RESTful funcional e escalável, com testes unitários e otimizações para melhor performance, que estará pronta para ser publicada seguindo boas práticas. Será utilizada uma estrutura robusta, testável e expansível, que poderá servir como base para implementar outras aplicações HTTP com NodeJS.

Além disso, será possível revisar conceitos importantes sobre as novas features da linguagem JavaScript e aprender a utilizar diferentes bancos de dados, como Postgres, MongoDB, DynamoDB e Redis.

Construindo Aplicações com NodeJS abrange:

• O que é o NodeJS e o que pode ser feito com essa plataforma.

• Conceitos de bancos de dados relacional e não relacional.

• Conceitos de REST e boas práticas para um bom design de API.

• Como construir, testar e otimizar uma API RESTful com NodeJS, aplicando boas práticas.

• Como construir um encurtador de links com Serverless e DynamoDB.

• Novidades das versões 18 e 20 do NodeJS, como fetch, novos métodos dos arrays e SEA.

• Como utilizar top level await, integrar a sua API na camada de frontend e até fazer deploy na nuvem da AWS.

Novo na 4ª Edição:

• Mais conteúdos sobre a linguagem JavaScript

• Explicação sobre novos métodos .toSpliced, .toSorted, .toReversed

• Novos conteúdos das versões v18 e v20, como fetch e SEA

• Adicionado npm-check para gerenciamento de dependências

• Adicionado conteúdo com exemplos para Typescript

• Adicionado node --watch (novidade do v18)

• Adicionado banco dynamodb

• Adicionado keepAlive com undici

• Melhorado capítulo sobre serverless, com mais conteúdo e projeto de exemplo usando dynamodb

• Adicionado node:test (framework nativo para testes)

Ver menos ▲

Sumário

  • Agradecimentos
  • Sobre o autor
  • Prefácio
  • 1 Introdução
    • 1.1 JavaScript
      • 1.1.1 Variáveis
      • 1.1.2 Comentários
      • 1.1.3 Funções
      • 1.1.4 Operações
      • 1.1.5 Controles de fluxo
      • 1.1.6 Laços de repetição
      • 1.1.7 Coleções
      • 1.1.8 Template strings
      • 1.1.9 Destructuring assignment
      • 1.1.10 Spread
      • 1.1.11 Rest parameters
      • 1.1.12 Optional chaining
      • 1.1.13 Default argument
      • 1.1.14 use strict
      • 1.1.15 ESlint
    • 1.2 Instalação do NodeJS
      • 1.2.1 Módulos n e nvm
      • 1.2.2 Arquivo package json
    • 1.3 NPM (Node Package Manager)
      • 1.3.1 npm update/npm-check
      • 1.3.2 npx
      • 1.3.3 yarn (Package Manager)
    • 1.4 Console do NodeJS (REPL)
      • 1.4.1 Variáveis de ambiente
    • 1.5 Programação síncrona e assíncrona
      • 1.5.1 Promises
      • 1.5.2 async/await
      • 1.5.3 Método process nextTick
    • 1.6 Orientação a eventos
    • 1.7 Orientação a objetos
      • 1.7.1 TypeScript
    • 1.8 Programação funcional
    • 1.9 Tenha um bom editor de código
      • 1.9.1 Arquivo de preferências do Sublime Text 3
      • 1.9.2 Arquivo de preferências do Visual Studio Code
      • 1.9.3 EditorConfig org
    • 1.10 Plugin para visualização de JSON
  • 2 Ferramentas de linha de comando
    • 2.1 Seu primeiro programa
      • 2.1.1 Criando Single Executable Applications
    • 2.2 Debug
    • 2.3 Brincando com TCP
    • 2.4 Criando um servidor HTTP
      • 2.4.1 Outros endpoints
    • 2.5 Nodemon/node --watch
      • 2.5.1 node --watch
    • 2.6 Express Generator e Fastify generate
      • 2.6.1 fastify generate
    • 2.7 Star Wars API
      • 2.7.1 Usando Fetch em vez de Axios
  • 3 REST (Representational State Transfer)
    • 3.1 Exemplos de APIs
    • 3.2 Estrutura da requisição
    • 3.3 Estrutura da resposta
    • 3.4 Restrições do REST
    • 3.5 Testando a requisição
      • 3.5.1 Testando a requisição com curl
      • 3.5.2 Testando a requisição com o Postman ou Insomnia
  • 4 Bancos de dados
    • 4.1 Postgres
      • 4.1.1 Modelagem
      • 4.1.2 node-postgres
    • 4.2 MongoDB
      • 4.2.1 Modelagem
      • 4.2.2 Mongoist
    • 4.3 Redis
      • 4.3.1 Modelagem
      • 4.3.2 node-redis
    • 4.4 DynamoDB
      • 4.4.1 Modelagem
      • 4.4.2 AWS SDK for Javascript v3
  • 5 Construindo uma API RESTful
    • 5.1 ExpressJS
    • 5.2 Middlewares
      • 5.2.1 Entendendo a utilidade
      • 5.2.2 Tipos de resposta
    • 5.3 Controllers
    • 5.4 Melhorando o listener do servidor
      • 5.4.1 Cluster
      • 5.4.2 dnscache
      • 5.4.3 HTTP keepalive
    • 5.5 API Stormtroopers
      • 5.5.1 Mongoist
      • 5.5.2 Mongoose
      • 5.5.3 pg
    • 5.6 Autenticação
      • 5.6.1 PassportJS
      • 5.6.2 JSON Web Token
    • 5.7 Fastify
      • 5.7.1 Schema
    • 5.8 JSON Schema
    • 5.9 Serverless
      • 5.9.1 Encurtador de URLs
      • 5.9.2 CRUD encurtador
      • 5.9.3 Deploy AWS Lambda
  • 6 FrontEnd
    • 6.1 Arquivos estáticos
    • 6.2 Client side
      • 6.2.1 xhr
      • 6.2.2 Fetch
      • 6.2.3 jQuery
      • 6.2.4 ReactJS
    • 6.3 Server side render
      • 6.3.1 Nunjucks
      • 6.3.2 Handlebars
      • 6.3.3 Pug
      • 6.3.4 React Server Side
  • 7 Testes automatizados
    • 7.1 Criando testes de código
      • 7.1.1 node:test
    • 7.2 Jest
      • 7.2.1 beforeAll,afterAll,beforeEach,afterEach
      • 7.2.2 ESlint
    • 7.3 Testes unitários
    • 7.4 Testes funcionais
    • 7.5 Testes de carga
  • 8 Produção
    • 8.1 Healthcheck
      • 8.1.1 /check/version
      • 8.1.2 /check/status
      • 8.1.3 /check/status/complete
    • 8.2 APM (Aplication Performance Monitoring)
    • 8.3 Logs
    • 8.4 forever e pm2
    • 8.5 Nginx
      • 8.5.1 compression
      • 8.5.2 Helmet
    • 8.6 Docker
    • 8.7 MongoDB Atlas
    • 8.8 AWS
      • 8.8.1 unix service
      • 8.8.2 Nginx
      • 8.8.3 aws-cli
    • 8.9 Heroku
    • 8.10 Travis CI
    • 8.11 GitHub Actions
  • Referências bibliográficas
  • Índice remissivo
Ver sumário completo ▼

Sobre o autor

William Bruno Moraes

William Bruno Moraes é desenvolvedor web apaixonado por boas práticas e design patterns. Iniciou com programação web em 2008 com PHP e JavaScript. Participante ativo do Fórum iMasters, escreve artigos para seu blog pessoal e alguns outros canais. Ministra cursos de NodeJS e MongoDB no CT da Novatec. Atualmente, trabalha na BelezaNaWeb.com.br com… Ver perfil completo ▶

Opinião dos leitores

Elézer S

O livro é atualizado e de um conteúdo riquíssimo. Valeu a pena acompanhar de ponta a ponta.

Ver todas ▼