O documento descreve o que é Node.js, como funciona seu modelo de programação assíncrono baseado em eventos e algumas de suas principais aplicações como framework para desenvolvimento web e aplicações em tempo real.
O que éNodeJS?
É um interpretador de código JavaScript que funciona do lado do servidor.
Seu objetivo é ajudar programadores na criação de aplicações de alta
escalabilidade (como um servidor web), com códigos capazes de manipular
dezenas de milhares de conexões simultâneas, numa única máquina física.
O Node.js é baseado no interpretador V8 JavaScript Engine (interpretador de
JavaScript open source implementado pelo Google em C++ e utilizado pelo
Chrome).
Instalar NodeJS
Windows:
•Baixar o arquivo nodejs msi e para instalar next, next....
Linux derivados do debian:
• sudo apt-get install node
Linux derivados do Red Hat:
• yum install node or rpm install node
Outros:
• Para mais informações https://nodejs.org/en/
12.
Primeiro teste emNodeJS
Depois de instalado digite no prompt de comando o seuiqnte comando:
node ou nodejs -> enter
• 1 + 1 -> enter
• 2 resutado
• var x = 15 -> enter
• var y = 10 -> enter
• x + y -> enter
• 25 -> resultado
• ctrl + c x2 -> para sair do node
Perdas
Falta decontrole da aplicação apesar de serem de código fonte
Muitas bibliotecas para fazer a mesma coisa
Aprender muitas bibliotecas e framework para auxiliar no trabalho
25.
Chamada de retorno
Callback é um assíncrono equivalente a função de retorno. Função callback é
chamada para completar uma tarefa passada.
Por exemplo:
• Você pode ler um arquivo de forma asincrona
• Mandar uma requisição e depois executar a ação
• Geralmente ações que não necessitem de mandar um retorno
imediatamente
28.
Emissão de Eventos
Node é de única aplicação thread, porém ele suporta concorrencia via
concentimento de eventos e callbacks. Como toda API de Nodejs são
assíncronas e comecao e somente uma thread, ele usa funções assíncronas para
manter a concorrencia.
Node utiliza o padrão observador. Ele mantém thread em um ciclo de eventos e
sempre que qualquer tarefa ficar concluída, ele aciona o evento correspondente
que assimila a função de event listener para obter executado.
Módulos
Em Node existemmuitos modulos disponiveis para auxiliar no desenvolvimento.
Além claro dos que possam ser desenvolvidos por outros programadores e usando
o NPM.
33.
Outros módulos úteis
OS:
• Proporciona uma basica biblioteca de operações com Sistema Operacional
(Independente de qual seja ele).
Path:
• Proporciona utilitarios para manipulação de diretorios e caminhos;
Net:
• Proporciona tanto no servidor quanto no cliente como uma elo.
DNS:
• Proporciona funções para fazer o atual DNS lookup como resolvedor de
nomes;
Domain:
• Proporciona uma maneira de lidar com multiplos e diferentes requisições
I/O como um unico grupo de operaçoes
34.
Framework Desenvolvimento
Total.js
Total.jsé um Framework no lado do servidor para criação de um rico web site,
aplicações web e REST servicos. O framework não contem qualquer aplicações e
dependencias de terceiros.
• "We made this great framework for you to help you growing your business"
• https://www.totaljs.com
35.
Framework Desenvolvimento
Express
Express éum framework de aplicações web mínimos e flexíveis Node.js. Express
fornece um conjunto de robustos recursos para web e aplicações móveis.
• http://expressjs.com
Instalar
• npm install express --save
40.
Meteor
Meteor éum framework open-source (MVC) para a construção de sites e
aplicações móveis da web. Ele permite escrever ambas as partes de cliente e
servidor de um aplicativo em JavaScript. conjunto de módulos pré-escrita,
auto-suficientes do Meteor embutido torna a escrita de códigos de aplicação.
Seu modelo de programação reativa permite a criação de aplicações que
utilizam menor código JavaScript. Além disso, Meteor é uma poderosa
estrutura para a construção de aplicações em tempo real.
https://www.meteor.com/
41.
Socket.IO
Socket.IO permitecomunicação em tempo real com base em eventos
bidirecional.
Ele funciona em todas as plataformas, navegadores ou dispositivo,
concentrando-se igualmente sobre a confiabilidade e velocidade.
http://socket.io/
Exemplo
• http://socket.io/demos/chat/
• http://socket.io/demos/weplay/
42.
Total.js
Total.js éum Framework no lado do servidor para criação de um rico web site,
aplicações web e REST servicos. O framework não contem qualquer
aplicações e dependencias de terceiros.
"We made this great framework for you to help you growing your business“
https://www.totaljs.com
43.
Curiosidades
Apesar de Node.jsser conhecido como servidor web, muitas de suas
funcionalidades se expandem e deixam essa ferramenta ainda mais poderos do que
já é.
Coffee Script
CoffeeScripté um pouco linguagem que compila em JavaScript. JavaScript
sempre teve um coração lindo. CoffeeScript é uma tentativa de expor as partes
boas do JavaScript de forma simples.
Implementa conceitos como forçar a identação de codigo.
Menos é mais.
Orrientação a Objetos de maneira mais clara.
http://coffeescript.org
46.
TypeScript
Typescript éum super digitado de JavaScript , que compila para JavaScript
simples. Qualquer browser. Qualquer host. Qualquer sistema operacional .
Código aberto.
Foco trazer programadores de linguagens fortemente tipadas para o mundo
Java Script.
Orientação a Objetos de forma explicita.
https://www.typescriptlang.org
47.
Less
LESS éuma linguagem de folha de estilos dinâmica desenhada por Alexis
Sellier. Ela foi influenciada por Sass e influenciou a nova sintaxe "SCSS" do
Sass, que adaptou sua sintaxe de formação de blocos do tipo CSS.
Programação no mundo do CSS.
Redução de codigo CSS.
http://lesscss.org
48.
Cordova/Phonegap
Plataforma paracriarar aplicativos moveis com tecnologias web HTML, CSS,
Java Script.
http://phonegap.com
https://cordova.apache.org
49.
Electron
Criar aplicativosdesktops atraves de tecnologias web HTML, CSS, Java
Script, Além de possuir como server side Node.JS
http://electron.atom.io
50.
Referências Bibliográficas
• Node.js.Disponível em: <http://nodejs.org/> Acesso em 3 de Outubro de 2016.
• Brincando com Node.js. Disponível em: http://akitaonrails.com/2010/03/16/brincando-
com-node-js-tornado-and-thin Acesso em 3 de Outubro de 2016.
• Event loop. Disponível em: <http://en.wikipedia.org/wiki/Event_loop> Acesso em 3 de
Outubro de 2016.
• CROWTHER, ROB. et al. Html5 em ação. São Paulo: NOVATEC, 2014