O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Node.js e Express

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 68 Anúncio

Node.js e Express

Baixar para ler offline

Partindo de uma introdução ao Node, entenderemos o funcionamento da Engine JavaScript V8, o Loop de Eventos, o Ambiente de Desenvolvimento até criarmos um pequeno Microsserviço com Node.js e o framework Express.

Partindo de uma introdução ao Node, entenderemos o funcionamento da Engine JavaScript V8, o Loop de Eventos, o Ambiente de Desenvolvimento até criarmos um pequeno Microsserviço com Node.js e o framework Express.

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Node.js e Express (20)

Anúncio

Mais de Dan Vitoriano (20)

Mais recentes (20)

Anúncio

Node.js e Express

  1. 1. Node.js + Express
  2. 2. Agenda
  3. 3. 1. Introdução ao Node.js
  4. 4. O que é Node.js
  5. 5. Ryan Dahl
  6. 6. Uma Runtime para JavaScript
  7. 7. Para quê serve o Node.js? ● ● ● ● ● ● ● ● ●
  8. 8. Quando usar o Node.js? ● ● ● ● ● ● ● ● ●
  9. 9. V8 ● ● ● ● ●
  10. 10. Motores JavaScript ● ● ● ● ● ● ● ● ● https://blog.sessionstack.com/how-javascript-works-inside-the-v8-engine-5-tips-on-how-to-write-optimized-code-ac089e62b12e
  11. 11. Sobre JavaScript ● ● ● ● ● ●
  12. 12. Exemplo de JavaScript
  13. 13. 1. Motor JavaScript (engine como o V8) 2. APIs da Web Fornecidas fora do motor JavaScript. Ao serem acionadas, são adicionados na fila de eventos (callback queue) 3. Os eventos entram em um loop e são adicionados um a um na pilha de processamento do motor JavaScript 4. O event loop vai testando quando um evento terminou e o retira da fila Como funciona o JavaScript?
  14. 14. JavaScript Call Stack https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf
  15. 15. Simultaneidade e o loop de eventos
  16. 16. Classes Ocultas do V8 ● ● ● https://blog.sessionstack.com/how-javascript-works-inside-the-v8-engine-5-tips-on-how-to-write-optimized-code-ac089e62b12e
  17. 17. Como escrever JavaScript otimizado ● ● ● ● ● https://blog.sessionstack.com/how-javascript-works-inside-the-v8-engine-5-tips-on-how-to-write-optimized-code-ac089e62b12e
  18. 18. O que acontece quando você tem chamadas de função na Call Stack que levam muito tempo para serem processadas?
  19. 19. Funções Assíncronas (Callback) https://blog.sessionstack.com/how-javascript-works-event-loop-and-the-rise-of-async-programming-5-ways-to-better-coding-with-2f077c4438b5
  20. 20. Loop de Eventos ● ● ● ● https://blog.sessionstack.com/how-javascript-works-event-loop-and-the-rise-of-async-programming-5-ways-to-better-coding-with-2f077c4438b5
  21. 21. Exemplo do Loop de Eventos Este é um gif animado, para visualizar, acesse o link abaixo: https://blog.sessionstack.com/how-javascript-works-event-loop-and-the-rise-of-async-programming-5-ways-to-better-coding-with-2f077c4438b5
  22. 22. Ajax https://codepen.io/danvitoriano/pen/oYqrgV
  23. 23. Promises https://codepen.io/danvitoriano/pen/dBoRba https://www.tutorialswebsite.com/basic-difference-between-callback-and-promise/
  24. 24. Async/Await ● ● https://codepen.io/danvitoriano/pen/KKzoMKQ
  25. 25. Fetch com Promises para acessar rotas fetch('http://example.com/movies.json') .then(response => response.json()) .then(data => console.log(data)) .catch(throw new Error("nao retornou") https://codepen.io/danvitoriano/pen/mdPxPyg https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
  26. 26. Como o Node.js funciona?
  27. 27. TUTORIAIS DE NODE.JS https://www.kindsonthegenius.com/nodejs/
  28. 28. Funcionamento transpiler + V8 Machine Language Assembly Language C/C++ JavaScript
  29. 29. Características do Node.js ● ● ● ● ● ● ● ● ●
  30. 30. Objetos Globais, Eventos e Requests ● Objetos Globais ○ global (variável global, namespaces: fs, http, url, path, https, stream, v8, Array, Buffer, ArrayBuffer) ○ process (I/O, eventos, pid, stdin, stdout, stderr, exit, kill) (EventEmitter) ● Eventos ○ JS é single-thread ○ loop events, callbacks, EventEmitter ○ libev, libeio ○ emit() ○ setTimeOut(), setInterval() ● Request ○ http.get(), request, node-fetch, async/await, Promise, r2, axios
  31. 31. Fila de Eventos Node.js
  32. 32. Como criar um web service com Node.js?
  33. 33. https://www.youtube.com/watch?v=y3u0qzw0ho4
  34. 34. Ambiente de Desenvolvimento ● ● ● ● ● ● ● ●
  35. 35. Instalando o Node.js ● ●
  36. 36. Opção 1 — Baixando arquivo Binário
  37. 37. Opção 2 — Utilizando o NVM
  38. 38. Testando instalação Node.js com Hello World
  39. 39. Node Package Manager (NPM) ● ● ○ ○ ○ ● ●
  40. 40. Criando um novo projeto para NPM
  41. 41. Exemplo package.json { "name": "my_package", "description": "", "version": "1.0.0", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "repository": { "type": "git", "url": "https://github.com/username/my_package.git" }, "keywords": [], "author": "", "license": "ISC", "bugs": { "url": "https://github.com/username/my_package/issues" }, "homepage": "https://github.com/username/my_package" } https://docs.npmjs.com/creating-a-package-json-file
  42. 42. 2. ExpressJS
  43. 43. Um framework Node.js
  44. 44. Adicionar Express como Dependência
  45. 45. VSCode
  46. 46. Módulos Node
  47. 47. Hello World com ExpressJS const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) })
  48. 48. Hello World com ExpressJS
  49. 49. Hello World com ExpressJS node app.js
  50. 50. Criar um servidor web var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello World!'); }); app.listen(3000, function () { console.log('Example app listening on port 3000!'); });
  51. 51. Desafios app.post("/api", () => {})
  52. 52. 3. Microsserviços
  53. 53. Microsserviços, APIs e REST
  54. 54. CRUD
  55. 55. cURL
  56. 56. Middlewares
  57. 57. JSON
  58. 58. Persistindo dados no web service const express = require('express') const app = express() const port = 3000 let items = [] app.use(express.json()) app.get('/', (req, res) => { res.json(items[1]) }) app.post('/', (req, res) => { items.push(req.body.name) console.log(req.body) res.send(`Criando dados de ${req.body.name}`) }) app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) }) (branch "video-microsservicos"):
  59. 59. Desafios
  60. 60. https://www.youtube.com/watch?v=jjKnmJFtkOk
  61. 61. GitHub ● ●
  62. 62. Bibliografia BÁSICA ● CROCKFORD, Douglas. O Melhor do JavaScript, Rio de Janeiro: Alta Books, 2008. ● EIS, Diego. Guia Front-End - O caminho das pedras para ser um dev Front-End, São Paulo: Casa do Código, 2015. ● POWERS, Shelley. Aprendendo Node, São Paulo: Novatec, 2017. ● MAZZA, Lucas. HTML5 e CSS3 - Domine a web do futuro, São Paulo: Casa do Código, 2012. ● LOPES, Sérgio. A Web Mobile - Design Responsivo e além para uma Web adaptada ao mundo mobile, São Paulo: Casa do Código, 2015. ● MORRISON, Michael. Use a Cabeça JavaScript, Rio de Janeiro: Alta Books, 2008. ● MORAES, William Bruno. Construindo Aplicações com NodeJS, São Paulo: Novatec, 2018. ● ALMEIDA, Flávio. Cangaceiro JavaScript - Uma aventura no sertão da programação, São Paulo: Casa do Código, 2017. COMPLEMENTAR ● FLANAGAN, David. JavaScript: O Guia Definitivo, Porto Alegre: Bookman, 2013. ● HAVERBEKE, Marijn. Eloquent JavaScript, São Francisco: No Starch Press, 2018. ● SILVA, Maurício Samy. CSS Grid Layout: Criando layouts CSS profissionais, São Paulo: Novatec, 2019. ● OSMANI, Addy. Learning Javascript Design Patterns, Sebastopol: O'reilly, 2012. ● STEFANOV, Stoyan. Padrões JavaScript, São Paulo: Novatec, 2010. ● ZAKAS, Nicholas C. JavaScript de Alto Desempenho, São Paulo: Novatec, 2010. ● RESIG, John. Segredos do Ninja Javascript, São Paulo: Novatec, 2013. ● GRONER, Loiane. Estruturas de dados e algoritmos com JavaScript: Escreva um código JavaScript complexo e eficaz usando a mais recente ECMAScript, São Paulo: Novatec, 2019. ● ROCHA, Zeno. 14 Hábitos de Desenvolvedores Altamente Produtivos, [S.l.]: Amazon Kindle, 2020. Disponível em <http://amazon.com/>
  63. 63. Referência ● ● ● ● ● ●

×