Ricardo Gonçalves
Developer
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/
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.
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 backend também.
Principais características
● Linguagem Google Chrome Javascript V8
● Orientado à eventos de I/O
● Threads Não-Bloqueantes (Single Thread)
● Server-side assíncrono
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
Threads Não-Bloqueantes
Threads Bloqueantes = Trânsito

Threads Não-Bloqueantes = Cardume
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.
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.
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.
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.
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.
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.
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
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 Worldn');

 }).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.
Para finalizarmos,
o famoso
chat em nodejs

Nodejs justdigital

  • 1.
  • 2.
    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/
  • 3.
    O problema aser 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.
  • 4.
    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 backend também.
  • 5.
    Principais características ● LinguagemGoogle Chrome Javascript V8 ● Orientado à eventos de I/O ● Threads Não-Bloqueantes (Single Thread) ● Server-side assíncrono
  • 6.
    Linguagem Google Chrome JavascriptV8 ● 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
  • 7.
    Threads Não-Bloqueantes Threads Bloqueantes= Trânsito Threads Não-Bloqueantes = Cardume
  • 8.
    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.
  • 9.
    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.
  • 10.
    Expresso  Módulo voltadopara realização de testes unitários em funções Javascript, cujo seus recursos seguem os conceitos da metodologia TDD - Test-Driven Development.
  • 11.
    Stylus  Framework voltadopara 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.
  • 12.
    Socket.IO  Framework cross-browserpara 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.
  • 13.
    Jade  Um templateengine 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.
  • 14.
    Instalação  Para instalaro 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
  • 15.
    Vamos testar, escrevendoum 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 Worldn');  }).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.
  • 16.

Notas do Editor

  • #2 Node.js é uma plataforma para construção de aplicações de rede (especialmente do lado do servidor) altamente escalaveis. Node.js usa JavaScript como linguagem de script, e alcança um alto rendimento devido ao fato de trabalhar com Threads Não-Bloqueantes (Single Thread).