Top Banner
Node.js for noobs Caio Ribeiro Pereira crpwebdev.com
23

Node.js for Noobs

Feb 09, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Node.js for Noobs

Node.js for noobsCaio Ribeiro Pereira

crpwebdev.com

Page 2: Node.js for Noobs

About me

Web Developer (Entusiasta JS)

Blogger (udgwebdev.com)

Escritor (Casa do Código)

Page 3: Node.js for Noobs

O que vamos ver?

Node.js

Big players

NPM (Node Package Manager)

Socket.IO

Microblog realtime na prática

Page 4: Node.js for Noobs
Page 5: Node.js for Noobs

nodejs.org

Page 6: Node.js for Noobs

Características do Node.js

Plataforma web/mobile/desktop

JavaScript Server-side

Non-blocking I/O

Programação Async e Sync

Desenvolvimento modular

Page 7: Node.js for Noobs

Sobre a plataformaCompatível nativamente:

HTTP/HTTPS

TCP/UDP

DNS

WebSockets

E muito mais via módulos 3rd-party!

Page 8: Node.js for Noobs

JavaScript V8 + Server-side = Node.js

Node.js usa motor JavaScript V8, o mesmo usado no Google Chrome

Page 9: Node.js for Noobs

Non-Blocking I/O

Node.js roda em single-thread

Não existe dead-locks

Execução de I/O é não-blocante

Funções async são não-blocante

Page 10: Node.js for Noobs

Non-blocking vs Blocking

Exemplo de I/O blocante

Page 11: Node.js for Noobs

Non-blocking vs Blocking

Exemplo de I/O não blocante

Page 12: Node.js for Noobs

Programação Async

Event-loop é o mecanismo para processamento async no Node.js

Page 13: Node.js for Noobs

Big players

Page 14: Node.js for Noobs
Page 15: Node.js for Noobs

npmjs.org

Page 16: Node.js for Noobs

Node Package Manager

Gerenciador de dependências

+170k de módulos Node.js

+20 milhões de downloads por dia!

Integrado no Node.js desde versão 0.6.0

Page 17: Node.js for Noobs

Principais comandos npm

npm init - Cria um package.json

npm install <módulo> - instala um módulo

npm remove <módulo> - remove um módulo

npm update <módulo> - atualiza um módulo

Mais comandos do npm https://docs.npmjs.com

Page 18: Node.js for Noobs

Anatomia do package.json

{ “name”: “nome-do-modulo”, “description”: “descricao do modulo”, “version”: “1.0.0”, “author”: “Nome <email>”, “dependencies”: { "moduloX": "1.0.0", "moduloY": "2.0.0" }

}

Page 19: Node.js for Noobs
Page 20: Node.js for Noobs

Socket.IOWrapper do protocolo WebSocket

Comunicação bidirecional (realtime)

Comunicação via eventos

Faz fallback em browsers antigos

FlashSocket

Ajax Long-Pooling

Para instalar: npm install socket.io

Page 21: Node.js for Noobs

Microblog realtime na prática

github.com/caio-ribeiro-pereira/microblog

Page 22: Node.js for Noobs

Perguntas?

Page 23: Node.js for Noobs

Thanks :)