nodejs justdigital
DESCRIPTION
NodeJS a poderosa solução de javascript server side. Palestra ministrada pelo Ricardo Gonçalves, developer na Just Digital.TRANSCRIPT
![Page 1: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/1.jpg)
Ricardo GonçalvesDeveloper
![Page 2: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/2.jpg)
Nodejs JavaScript no server-side
● Nascido em 2009, pelo criador Ryan Dahl junto com 14 colaboradores no início dessa jornada
● Construído sobre o engine v8 JavaScript do Google Chrome
● Utiliza Javascript como linguagem
● Muito popular – um dos repositórios mais seguido no github
● Muitos módulos disponíveis
http://nodejs.org/
![Page 3: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/3.jpg)
O problema a ser solucionado!
O problema principal que eles queriam resolver com essa plataforma foi a de facilitar o desenvolvimento de aplicações real-time e de alta escalabilidade com isso surgiu o Node.js.
![Page 4: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/4.jpg)
O que você ganha com isso?
● Vai aprender uma tecnologia nova.
● Vai perceber que Node.js é simples de aprender, principalmente se você já trabalha com Javascript.
● Vai dominar uma tecnologia poderosa que possui recursos que vão desde a criação de um simples website até um sistema web com interações em tempo-real.
● Se você é programador front-end, vai amar Node.js simplesmente pelo fato de trabalhar com Javascript no back-end também.
![Page 5: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/5.jpg)
Principais características
● Linguagem Google Chrome Javascript V8
● Orientado à eventos de I/O
● Threads Não-Bloqueantes (Single Thread)
● Server-side assíncrono
![Page 6: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/6.jpg)
Linguagem Google Chrome Javascript V8
● Javascript no servidor
● Curva de aprendizado pequena
● Javascript no server-side da aplicação e o mesmo que conhecemos
● Foco maior na regra de negócio, como utilizar os diversos módulos e Design Patterns do Javascript
![Page 7: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/7.jpg)
Threads Não-BloqueantesThreads Não-Bloqueantes = Cardume
Threads Bloqueantes = Trânsito
![Page 8: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/8.jpg)
Módulos em Node.JS
● Módulos são cruciais para construção de aplicações em Node
● Padrão CommonJS na construção dos módulos
● Módulos do Núcleo do Node
● - Para trabalhar com sistema de arquivos existe o módulo fs e para redes os módulos são net (TCP), http, dgram (UDP), entre outros.
![Page 9: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/9.jpg)
NPM (Node Package Manager)
Node Package Manager, é o módulo de grande importância para projetos Node. Pois ele é um módulo global instalado para gerenciar a instalação de módulos no projeto, possui comandos semelhantes a um gerenciador de repositórios do Linux como apt-get, pacman, yum e outros.
![Page 10: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/10.jpg)
Expresso
Módulo voltado para realização de testes unitários em funções Javascript, cujo seus recursos seguem os conceitos da metodologia TDD - Test-Driven Development.
![Page 11: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/11.jpg)
Stylus
Framework voltado para gerenciamento dinâmico de CSS. Suas funcionalidades em destaque são: Mixin, Mixin parametrizáveis, variáveis para propriedades dos seletores, operadores com números, funções e namespaces, além de outras funcionalidades. Muito útil para implementar estilizações CSS complexas de forma produtiva e eficiente.
![Page 12: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/12.jpg)
Socket.IO
Framework cross-browser para comunicação real-time através de mensagens em broadcast. Possui integração com WebSockets, além de possuir o seu próprio script para trabalhar no lado cliente.
![Page 13: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/13.jpg)
Jade
Um template engine muito famoso para Node.js, para muitos é considerado uma versão melhorada do Haml, pelo fato de possuir uma síntaxe limpa e de fácil aprendizado. Permite trabalhar com variáveis e diversos comandos de servidor dentro da própria view e também permite criar partials no template.
![Page 14: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/14.jpg)
Instalação Para instalar o node e o NPM no ubuntu é muito
fácil.
Abra o console e execute os seguintes comandos:
sudo apt-get update
sudo apt-get install -y python-software-properties python g++ make
sudo add-apt-repository -y ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
ou então, dependendo da sua versão do ubuntu.
sudo apt-get install nodejs
Para instalar o NPM basta executar os seguinte comando
curl http://npmjs.org/install.sh | sudo sh
![Page 15: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/15.jpg)
Vamos testar, escrevendo um helloworld.js
Abra um editor de texto de sua preferencia e digite:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');
salve e rode o arquivo usando o comando:
node helloworld.js
após rodar, será exibido no console o texto Hello World.
![Page 16: Nodejs justdigital](https://reader033.vdocuments.site/reader033/viewer/2022061217/54b513ff4a7959202e8b462e/html5/thumbnails/16.jpg)
Para finalizarmos, o
famosochat em nodejs