Primeiros passos com Node.js
De João Rubens
()
Sobre este e-book
Neste livro, João Rubens tem como principal objetivo apresentar conhecimentos teóricos de nível básico e intermediário sobre Node.js, que habilite o leitor a compreender cenários em que essa tecnologia possa ser aplicada. Você acompanhará uma série de exemplos sobre o uso de Node.js e suas tecnologias associadas à configuração e utilização de um servidor web. Esses conceitos habilitam o leitor a desenvolver aplicações web server-side a partir do zero, trazendo os fundamentos da tecnologia como apoio. Ao fim da leitura, você estará apto a:
* Utilizar o framework de aplicativos web Express;
* Utilizar o módulo nodemon para watch de processos;
* Criar e configurar Middlewares;
* Aplicar o nunjucks como template engine de páginas web;
* Aplicar o módulo passport para autenticação de usuários;
* Utilizar sistemas gerenciadores de banco de dados SQL (MySQL) e NoSQL (MongoDB) com Node.js;
* Realizar deploy de uma aplicação construída do início em um serviço de Cloud.
Relacionado a Primeiros passos com Node.js
Ebooks relacionados
Construindo APIs REST com Node.js: Caio Ribeiro Pereira Nota: 5 de 5 estrelas5/5APIs REST: Seus serviços prontos para o mundo real Nota: 5 de 5 estrelas5/5Vue.js: Construa aplicações incríveis Nota: 0 de 5 estrelas0 notasReact Native: Desenvolvimento de aplicativos mobile com React Nota: 5 de 5 estrelas5/5Front-end com Vue.js: Da teoria à prática sem complicações Nota: 5 de 5 estrelas5/5Aplicações web real-time com Node.js Nota: 5 de 5 estrelas5/5ECMAScript 6: Entre de cabeça no futuro do JavaScript Nota: 5 de 5 estrelas5/5PostgreSQL: Banco de dados para aplicações web modernas Nota: 5 de 5 estrelas5/5Iniciando com Flutter Framework: Desenvolva aplicações móveis no Dart Side! Nota: 0 de 5 estrelas0 notasO retorno do cangaceiro JavaScript: De padrões a uma abordagem funcional Nota: 0 de 5 estrelas0 notasBootstrap 4: Conheça a biblioteca front-end mais utilizada no mundo Nota: 5 de 5 estrelas5/5Meteor: Criando aplicações web real-time com JavaScript Nota: 5 de 5 estrelas5/5PHP e Laravel: Crie aplicações web como um verdadeiro artesão Nota: 0 de 5 estrelas0 notasSass: Aprendendo pré-processadores CSS Nota: 0 de 5 estrelas0 notasDominando JavaScript com jQuery Nota: 1 de 5 estrelas1/5Guia prático de TypeScript: Melhore suas aplicações JavaScript Nota: 0 de 5 estrelas0 notasMySQL: Comece com o principal banco de dados open source do mercado Nota: 4 de 5 estrelas4/5Coletânea Front-end: Uma antologia da comunidade front-end brasileira Nota: 0 de 5 estrelas0 notasWeb Services REST com ASP .NET Web API e Windows Azure Nota: 0 de 5 estrelas0 notasBack-end Java: Microsserviços, Spring Boot e Kubernetes Nota: 0 de 5 estrelas0 notasGraphQL: A revolucionária linguagem de consulta e manipulação de dados para APIs Nota: 0 de 5 estrelas0 notasProgramação Funcional: Uma introdução em Clojure Nota: 4 de 5 estrelas4/5HTML5 e CSS3: Domine a web do futuro Nota: 4 de 5 estrelas4/5Django de A a Z: Crie aplicações web rápidas, seguras e escaláveis com Python Nota: 0 de 5 estrelas0 notasDesign Patterns com PHP 7: Desenvolva com as melhores soluções Nota: 5 de 5 estrelas5/5Kotlin com Android: Crie aplicativos de maneira fácil e divertida Nota: 4 de 5 estrelas4/5MongoDB: Construa novas aplicações com novas tecnologias Nota: 0 de 5 estrelas0 notasAzure: Coloque suas plataformas e serviços no cloud Nota: 0 de 5 estrelas0 notasJavaScript Assertivo: Testes e qualidade de código em todas as camadas da aplicação Nota: 0 de 5 estrelas0 notasTest-Driven Development: Teste e Design no Mundo Real Nota: 0 de 5 estrelas0 notas
Internet e Web para você
Bootstrap 4: Conheça a biblioteca front-end mais utilizada no mundo Nota: 5 de 5 estrelas5/5HTML5 e CSS3: Domine a web do futuro Nota: 4 de 5 estrelas4/5Introdução e boas práticas em UX Design Nota: 5 de 5 estrelas5/5Liberdade digital: O mais completo manual para empreender na internet e ter resultados Nota: 5 de 5 estrelas5/5Como ganhar dinheiro com aplicativos Nota: 3 de 5 estrelas3/573 Incríveis tipos de postagens de blog que você pode escrever hoje Nota: 2 de 5 estrelas2/5Fundamentos de Segurança da Informação: com base na ISO 27001 e na ISO 27002 Nota: 5 de 5 estrelas5/5Aplicações web real-time com Node.js Nota: 5 de 5 estrelas5/5Guia Front-End: O caminho das pedras para ser um dev Front-End Nota: 5 de 5 estrelas5/5APP para iniciantes: Faça seu primeiro aplicativo Low Code Nota: 0 de 5 estrelas0 notasSua Empresa na Internet Nota: 5 de 5 estrelas5/5Construindo um Blog de sucesso com o WordPress 3 Nota: 0 de 5 estrelas0 notasCrimes cibernéticos: ameaças e procedimentos de investigação - 2ª Edição Nota: 5 de 5 estrelas5/5Deep Web: Todos os segredos e mistérios da rede por trás da rede Nota: 0 de 5 estrelas0 notasManual do social media: Os 7 segredos para o sucesso nas mídias sociais para pequenas empresas Nota: 0 de 5 estrelas0 notasCriação de sites na era da Web 2.0 Nota: 0 de 5 estrelas0 notasAmazon AWS: Descomplicando a computação na nuvem Nota: 5 de 5 estrelas5/5Cibersegurança: Visão Panorâmica Sobre a Segurança da Informação na Internet Nota: 0 de 5 estrelas0 notasA Web Mobile: Design Responsivo e além para uma Web adaptada ao mundo mobile Nota: 0 de 5 estrelas0 notasRoadmap back-end: Conhecendo o protocolo HTTP e arquiteturas REST Nota: 5 de 5 estrelas5/5Computação comunicação e controle: Silvio Meira no NO Nota: 0 de 5 estrelas0 notasProgressive Web Apps: Construa aplicações progressivas com React Nota: 3 de 5 estrelas3/5SEO Prático: Seu site na primeira página das buscas Nota: 0 de 5 estrelas0 notasPolíticas e Normas para a Segurança da Informação Nota: 0 de 5 estrelas0 notasInteligência Digital Nota: 5 de 5 estrelas5/5Briefing: a gestão do projeto de design Nota: 0 de 5 estrelas0 notasAPIs REST em Kotlin: Seus serviços prontos para o mundo real Nota: 0 de 5 estrelas0 notas
Avaliações de Primeiros passos com Node.js
0 avaliação0 avaliação
Pré-visualização do livro
Primeiros passos com Node.js - João Rubens
Sumário
ISBN
Agradecimentos
Sobre o autor
Sobre o livro
1. Introdução
2. Instalação
3. O que é o Node.js
4. Iniciando um servidor web
5. Módulos CommonJs
6. NPM
7. ECMAScript 2015 – ES6
8. Web server com Express
9. Nunjucks – template engine
10. Aplicação com MySQL
11. Integração com MongoDB
12. Sessions
13. Autenticação com Passport
14. Restrição de acesso a páginas
15. Aplicação final
16. Deploy
17. Daqui para a frente...
ISBN
Impresso e PDF: 978-85-5519-285-2
EPUB: 978-85-5519-286-9
MOBI: 978-85-5519-287-6
Você pode discutir sobre este livro no Fórum da Casa do Código: http://forum.casadocodigo.com.br/.
Caso você deseje submeter alguma errata ou sugestão, acesse http://erratas.casadocodigo.com.br.
Agradecimentos
Como sempre, em toda a minha trajetória de vida, devo agradecer ao Senhor Jesus pelas graças alcançadas. Sem minha fé em ti, nada disso seria possível.
Agradeço à minha querida esposa, Elisa, que me motivou e incentivou desde o início desta jornada.
Agradeço ao pessoal da Casa do Código, em especial à Vivian Matsui, pelo trabalho de revisão e aconselhamento literário.
Por fim, e não menos importante, agradeço a toda comunidade de desenvolvedores web, que prontamente atendem aos chamados dos seus pares, desenvolvedores, nos diversos fóruns da vida, esclarecendo dúvidas e compartilhando conhecimentos.
Sobre o autor
Sou fascinado por desenvolvimento desde os tempos de faculdade. Mesmo antes, já tinha tido contato com Visual Basic 6.0 em um curso técnico, desenvolvendo um sistema simples de gestão para imobiliárias ao final do curso.
Cursei Tecnologia em Análise e Desenvolvimento de Sistemas na UNICAMP. Foi lá que conheci C++ e me interessei por Java. Fiz a doidera de integrar dois sistemas, Java e C++, utilizando JNI, como parte do desenvolvimento de minha dissertação de mestrado, que lidava com algoritmos sobre grafos. Não parei de estudar programação desde então.
Mas foi quando começar a lecionar que me deparei com desenvolvimento para web. Foi amor à primeira vista, há mais de 6 anos! Hoje, leciono linguagens de programação no curso técnico, faculdade e pós-graduação. Troquei o Java por outras três linguagens, que me identifico muito: C#, JavaScript (Node.js) e PHP.
Apesar de não ter uma rotina de desenvolvedor full time, pois sou professor de carreira, tenho de ler e estudar sobre tecnologia todos os dias, além de criar estratégias que alavanquem o aprendizado dos meus alunos. Nos momentos de lazer, dentre outras atividades, uno minha paixão de desenvolver com a de ensinar, escrevendo livros e apostilas, palestrando e gravando videocasts sobre tecnologia.
Você pode me encontrar no YouTube (procure por Professor Binho), Facebook (https://www.facebook.com/professorbinhoaulas) e fóruns de discussão. Se algum dia nos encontrarmos, será um prazer trocar ideias e experiências!
Sobre o livro
Node.js, sem dúvidas, é uma tecnologia que veio para ficar. Na comunidade de desenvolvedores web, todos os dias, nos deparamos com notícias e novas funcionalidades que envolvem Node.js.
O principal objetivo deste livro é apresentar ao leitor conhecimentos teóricos de nível básico e intermediário sobre Node.js, que o habilite a compreender cenários em que essa tecnologia possa ser aplicada, por conta de suas diversas características.
Para isso, o livro traz uma série de exemplos, divididos em capítulos, sobre o uso de Node.js e suas tecnologias associadas à configuração e utilização de um servidor web. Esses conceitos habilitam o leitor a desenvolver aplicações web server-side a partir do zero, trazendo os fundamentos da tecnologia como apoio.
Para demonstrar cada característica da plataforma, vou apresentar diversas ferramentas associadas ao desenvolvimento em Node.js. Com elas, é possível alcançar os objetivos secundários deste livro, que são:
Utilizar o framework de aplicativos web Express;
Utilizar o módulo nodemon para watch de processos;
Criar e configurar Middlewares;
Aplicar o nunjucks como template engine de páginas web;
Aplicar o módulo passport para autenticação de usuários;
Utilizar sistemas gerenciadores de banco de dados SQL (MySQL) e NoSQL (MongoDB) com Node.js;
Realizar deploy de uma aplicação construída do início em um serviço de Cloud.
Os diversos projetos criados no decorrer do livro estão hospedados no GitHub. Você pode acessá-los a partir do link https://github.com/bmarchete/primeiros-passos-nodejs.
Caso você queira tirar dúvidas ou deixar sugestões e comentários, acesse o fórum da Casa do Código, em http://forum.casadocodigo.com.br.
Espero que você usufrua de todo conteúdo preparado neste livro, que foi desenvolvido com muito rigor e carinho!
A quem se destina
Este livro foi escrito para desenvolvedores web que muito ouviram falar sobre Node.js, mas pouco conhecem. O caro leitor precisará ter algum conhecimento de linguagens de programação, preferencialmente, JavaScript. Esse conhecimento facilitará o desenvolvimento das atividades práticas presentes aqui. Se este não for o caso, é possível ir aprendendo conforme se desenvolve a leitura do livro!
É importante também que o leitor conheça os fundamentos de criação de páginas web, como HTML, CSS, além de entender como ideia geral para que serve um framework.
Apesar de, em diversas partes do livro, estarem detalhadas características da comunicação cliente servidor, é interessante que o leitor conheça o funcionamento do protocolo HTTP.
Por último, para acompanhar os capítulos que envolvem operações com dados, o leitor deve conhecer o básico sobre sistemas gerenciadores de banco de dados, sintaxe SQL e um pouco sobre tecnologias NoSQL.
Capítulo 1
Introdução
Nos arredores das comunidades de desenvolvimento de sistemas, principalmente aquelas relacionadas ao desenvolvimento web e mobile, muito se tem falado sobre aplicações escaláveis, serviços real-time, microsserviços, componentização e segurança nos últimos cinco anos. Mesmo sabendo pouco sobre esses conceitos, todo desenvolvedor de sistemas acaba se deparando com eles no seu dia a dia, cedo ou tarde. Se não é o seu caso, não se preocupe, pois eles serão explorados com mais profundidade ao longo do livro.
Por conta de fatores como alta adesão por parte dos usuários a serviços acessados pelo smartphone, uso intenso de redes sociais e a ascensão de dispositivos IoTs (Internet of Things, ou Internet das Coisas), os velhos paradigmas de desenvolvimento de software tiveram de mudar. Também, as grandes áreas do desenvolvimento, como front-end, back-end e infraestrutura, dividem hoje fatias iguais de importância no mercado de software.
Pensar em desenvolver software hoje vai muito além da escolha de uma linguagem que seja de fácil entendimento ou de costume dos programadores. Quando se pensa em software, se imagina uma aplicação como um todo. Isso significa envolver os tipos de usuários que vão consumir a aplicação, qual será a demanda de dados, além de, por exemplo, qual é a disponibilidade que os servidores deverão apresentar. Todos esses fatores vão impactar diretamente na escolha das tecnologias envolvidas com o processo de desenvolvimento.
Não são poucos os casos de empresas que tiveram de se adaptar, ou até mesmo trocar de tecnologia por conta das características intrínsecas das aplicações que desenvolvem. É possível encontrar, em uma busca rápida pela web, exemplos de empresas que migraram as tecnologias envolvidas com o desenvolvimento e disponibilidade dos seus produtos, por conta dos fatores apresentados. Dentre elas, podem-se citar:
NetFlix: criação de frameworks próprios para atender suas demandas, como é o caso do Falcor (https://netflix.github.io/falcor/), que funciona como uma interface para os dados da aplicação;
Facebook: criação de uma linguagem nova para atender às necessidades da plataforma (Hack - http://hacklang.org/);
Microsoft: criação de um ecossistema open source para suas plataformas de desenvolvimento de aplicativos, sites e serviços (.NET Core - https://blogs.msdn.microsoft.com/dotnet/2014/11/12/net-core-is-open-source/).
Esses são exemplos bem banais do que ocorre diariamente com empresas que desenvolvem sistemas. Convido você a buscar mais exemplos para entender como está o mercado de software atualmente.
1.1 Node.js
O Node.js é uma ferramenta que surgiu nos moldes deste cenário, e ganhou espaço por conta de diversas características apresentadas neste livro. É comum se perguntar o porquê de se adotar uma nova tecnologia, como o Node.js, pois essa adoção envolve treinamento de pessoal, maturidade da ferramenta, vantagens e desvantagens.
Apesar disso, nem sempre esse processo é opcional. Existem tecnologias que estão muito adiante das demais concorrentes em casos específicos. Apenas isso já justifica a migração de sistemas inteiros e horas de capacitação de pessoal, pois o serviço entregue no final é sempre o maior objetivo.
Dito isso, apresento aqui alguns casos em que a adoção do Node.js, por parte de empresas de tecnologia, foi muito além do que meros caprichos:
Nasa
Engenheiros da NASA utilizaram Node.js para criar uma API que integra três bases de dados em um só, baseado em um serviço de Cloud. Isso permitiu que dados gerados, como por exemplo, em missões extraveiculares, fossem acessados de maneira muito mais eficaz.
Se você quiser saber mais sobre o uso de Node.js na Nasa, acesse o link https://nodejs.org/static/documents/casestudies/Node_CaseStudy_Nasa_FNL.pdf.
GoDaddy
A GoDaddy migrou seus projetos front-end e back-end para Node.js, deixando a tecnologia .NET por conta da comunidade que trabalha nos módulos oferecidos pelo sistema de a linguagem ser mais vibrante
. Isso aponta uma