SlideShare uma empresa Scribd logo
node.js
Introdução
node.js?
- Ryan Dahl
- Criado em 2009
- Escrito em C++ e Javascript
- Multiplataforma (Linux, Windows e Mac)
- Foco em alta escalabilidade e em tempo real
- Versão atual: 0.10.26 / Fev 18, 2014
- Open Source mantido pela Joyment
https://github.com/joyent/node
O que é?
- Plataforma para utlizar Javascript fora do navegador. (Focada em servidores)
- Escrita sobre interpretador V8 do Google
Ou seja, essa plataforma é escrita com códigos C++ e Javascript
- Baseada em eventos
- I/O não bloqueante
Servidores “Comuns”
Node.js, Uma breve introdução
Node.js, Uma breve introdução
Node.js, Uma breve introdução
Node.js, Uma breve introdução
Node.js, Uma breve introdução
Servidores que usam
Node.js
Node.js, Uma breve introdução
Node.js, Uma breve introdução
Node.js, Uma breve introdução
Node.js, Uma breve introdução
Node.js, Uma breve introdução
Quer dizer que...
- Você tem o poder do Javascript para criar aplicações orientadas a eventos e
assíncronas em qualquer máquina.
- Sua premissa é facilitar a construção de aplicações de rede (servidores web,
etc.) sem bloqueio de leitura e escrita.
- Ao instalar o node, o mesmo já vem com uma biblioteca inicial muito
poderosa.

http://nodejs.org/api

- Comunidade de desenvolvedores extremamente entusiasmada.
What?
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello Worldn');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');

>> node hello.js
Server running at http://127.0.0.1:1337/'
Por que usar?
- Aplicações com dados em tempo real
- Aplicações com muitas, muitas requisições ao mesmo tempo
- Aplicações com colaboração entre muitos usuários
- Chats
- Envios de dados (upload de arquivos)
- Jogos
- Servidor para diferentes protocolos ao mesmo tempo
- APIs (Sim, web apis, bitches)
Por que NÃO usar?
- Aplicações que utilizam muito processamento (redimensionamento de
imagens, renderização de vídeos, cálculos matemáticos pesados, etc.)
- Simples páginas HTML
- Aplicações baseadas em conteúdo, CRUDs, com muitas regras de negócio
- Aplicações dependentes de bancos de dados relacionais
Empresas que utilizam

Mais em: http://nodejs.org/industry/
e: http://bit.ly/1kBolIL
Então, node.js é...
- Plataforma para desenvolver aplicações com Javascript
- Com foco em para alta escalabilidade para alta concorrência
- Performance com altas cargas de acesso
- Multiplataforma
- Comunidade de desenvolvedores super ativa
- Ainda imatura
- Não soluciona todos os problemas do mundo
Fim
Tchau, comercial
node.js
js fora do seu navegador
The good stuff
- Javascript
- Fácil de instalar (hoje é)
- Multiplataforma
- V8
- Pacotes, muitos pacotes
- Event Loop
- Conduz os desenvolvedores ao mindset de “Evented/Async I/O”
Event Loop
- Single-Thread que escuta por todas requisições ao servidor
- Ao receber req. que precisam realizar operações bloqueantes (acesso a disco,
computação pesada, etc), criar uma tarefa async para o SO e guarda um callback para
esse tarefa
- Continua recebendo outras requições, até receber a resposta da tarefa enviado o SO,
então executa o callback, espera até estar livre e executa esta respota
- Abstrai toda implementação de gerenciamento de threads, consumo de memória, etc
Multi-threaded HTTP server
Node.js Server
Multi vs Single threaded concurrency
Multi-threaded concurrency

Single threaded concurrency
Sync vs Async I/O
Synchronous I/O

Asynchronous I/O
Alguns problemas
- É Javascript
Algumas bizarrices (www.wtfjs.com)
Facilidade em não seguir padrões
Não é orientado a objetos
- Por default, exceções matam o processo
- Vazamentos de memória difíceis de encontrar
- Ainda é beta (~v 0.10.26)
- Single thread trava em códigos de alto processamento
- Falta de maturidade para utilizar bancos de dados relacionais
“I got 99 problems but a callback aint one”

Callback HELL
npm - node packeges manager
- É o gerenciador de pacotes oficial do node.
- Nele já são mais de 61k pacotes escritos pela comunidade de
desenvolvedores.
- Instalado junto ao node, que é uma dependência (óbvia) para o uso do npm.
- Utilizado através da linha de comando, possuí uma API poderosa para a
instalação e busca de pacotes. https://www.npmjs.org/doc/
Utilizando o npm: Instalando pacote
Utilizando o npm: Baixando pacotes
Na pasta root do projeto, criar o arquivo packages.json.
{
'name': 'mini-chat' ,
version: '0.0.1',
description: 'Chat app.',
engines: {
'node': '>= 0.6.x',
npm: '>= 1.1.x'
},
dependencies: {
'express': '>= 2.x.x',
now: '>= 0.x.x'
},
}
Utilizando o npm
Exemplos
SHOW ME THE CODE
https://github.com/ruanmyv/node-examples
Hello world
hello-app
Numbers
numbers-app
Chat
chat-app
Express
express-app
Fim²
Show me the links!!
http://nodebr.com/
http://howtonode.org/
http://nodejs.org/
https://github.com/joyent/node
http://www.nodebeginner.org/
http://callbackhell.com/
Why The Hell Would I Use Node.js? A Case-by-Case Introduction
Node Tools for VS - Youtube
Introducing node.js Tools for Visual Studio
Node.js para iniciantes
O que é npm do nodejs
O que exatamente é o Node.js?
What are the disadvantages of using Node.js?
Node.js for Beginners
Java EE threads v/s Node.js – which is better for concurrent data processing operations
Beginner’s Guide To Node.Js (Server-Side JavaScript)
Node.js para leigos
Show me the links!!
Slideshare - Node.js: serious business
Slideshare - Node.js campus party brasil 2011
Future-proofing Your Apps: Cloud Foundry and Node.js
7 minimal Node.js webframeworks
Concurrent programming for scalable web architetures
You’ll never believe how LinkedIn built its new iPad app (exclusive) [Linkedin]
Blazing fast node.js: 10 performance tips from LinkedIn Mobile [Linkedin]
Here's why you should be happy that Microsoft is embracing Node.js [Microsoft]
Yahoo! Announces Cocktails

Shaken, Not Stirred [Yahoo]

Why Walmart is using Node.js [Walmart]
Fluent 2013: Bill Scott, "Clash of the Titans: Releasing the Kraken | NodeJS @paypal" [Paypal]

Mais conteúdo relacionado

PDF
Introduction a Flutter
PPTX
Coroutines in Kotlin
PPTX
Android AIDL Concept
PPTX
WEB SERVICE SOAP, JAVA, XML, JAXWS
PDF
Présentation Flutter
PPTX
Introduction à React JS
PPTX
GraphQL Introduction with Spring Boot
PDF
Programmation sous Android
Introduction a Flutter
Coroutines in Kotlin
Android AIDL Concept
WEB SERVICE SOAP, JAVA, XML, JAXWS
Présentation Flutter
Introduction à React JS
GraphQL Introduction with Spring Boot
Programmation sous Android

Mais procurados (20)

PDF
Node.js - #1 - Introdução - Rodrigo Branas
PPTX
Golang - Overview of Go (golang) Language
PPT
Learning AOSP - Android Booting Process
PDF
PUC SE Day 2019 - SpringBoot
PDF
Applications Android - cours 3 : Android Studio (Outil de développement)
PDF
Applications Android - cours 11 : Boites de dialogue
PDF
Support Web Services SOAP et RESTful Mr YOUSSFI
PPTX
Golang (Go Programming Language)
PDF
Applications Android - cours 8 : Gestion des évènements
PDF
Nodejs presentation
PDF
Android is NOT just 'Java on Linux'
PDF
Support JEE Servlet Jsp MVC M.Youssfi
PDF
ReactJS presentation
PDF
Android's HIDL: Treble in the HAL
PDF
PDF
Kotlin - Better Java
PDF
Maven et industrialisation du logiciel
PDF
Android device driver structure introduction
PDF
Golang 101
PPTX
NodeJS guide for beginners
Node.js - #1 - Introdução - Rodrigo Branas
Golang - Overview of Go (golang) Language
Learning AOSP - Android Booting Process
PUC SE Day 2019 - SpringBoot
Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 11 : Boites de dialogue
Support Web Services SOAP et RESTful Mr YOUSSFI
Golang (Go Programming Language)
Applications Android - cours 8 : Gestion des évènements
Nodejs presentation
Android is NOT just 'Java on Linux'
Support JEE Servlet Jsp MVC M.Youssfi
ReactJS presentation
Android's HIDL: Treble in the HAL
Kotlin - Better Java
Maven et industrialisation du logiciel
Android device driver structure introduction
Golang 101
NodeJS guide for beginners
Anúncio

Destaque (20)

PPTX
Introdução ao Node.js - FATEC SP
PDF
V de Vinagre: A história por trás da história do momento que mudou o Brasil
PPT
Criando Temas com Diazo
PDF
O Futuro do Plone
PDF
O Futuro do Plone (RuPy-Br)
PDF
Minicurso Ruby
PDF
PloneGov.Br: Cadê o .br que estava aqui?
PDF
Lenguaje, framework, comunidad y cuenta bancaria: De teoría hasta la práctica
PDF
Plone 5: Você ainda vai ter um!
PDF
O Futuro do Plone (PythonBrasil[8])
PDF
Diazo para todos
PDF
O Futuro do Plone
PDF
O Estado do Plone - FISL 14
PDF
Plone: Funcionalidades que todo gestor de conteúdo Plone deveria saber
PDF
Criando temas para Joomla, Wordpress, Drupal e tudo mais sem tocar em templa...
PDF
Gestión de Contenido con Plone
PDF
Secomp 2011 - Node.JS - Introdução
PDF
Integrando Python e JavaScript
PDF
Cómo Brasil está construyendo una nación digital con código abierto y Python
PDF
Python como primeira linguagem de programação
Introdução ao Node.js - FATEC SP
V de Vinagre: A história por trás da história do momento que mudou o Brasil
Criando Temas com Diazo
O Futuro do Plone
O Futuro do Plone (RuPy-Br)
Minicurso Ruby
PloneGov.Br: Cadê o .br que estava aqui?
Lenguaje, framework, comunidad y cuenta bancaria: De teoría hasta la práctica
Plone 5: Você ainda vai ter um!
O Futuro do Plone (PythonBrasil[8])
Diazo para todos
O Futuro do Plone
O Estado do Plone - FISL 14
Plone: Funcionalidades que todo gestor de conteúdo Plone deveria saber
Criando temas para Joomla, Wordpress, Drupal e tudo mais sem tocar em templa...
Gestión de Contenido con Plone
Secomp 2011 - Node.JS - Introdução
Integrando Python e JavaScript
Cómo Brasil está construyendo una nación digital con código abierto y Python
Python como primeira linguagem de programação
Anúncio

Semelhante a Node.js, Uma breve introdução (20)

PPTX
Node.js - Devo adotar na minha empresa?
PPTX
Introdução ao Nodejs
PPTX
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
PPTX
NodeJS - Tutorial de forma simples e pratica.
PDF
Node js - Javascript Server Side
PDF
Node.js: 5 razões para começar a utilizar
PPTX
Node.js
ODP
Conhecendo o Nodejs
KEY
Uma visão rápida sobre Nodejs
PPTX
APRESENTAÇÃO ISAQUE E RAQUEL QUARTA- VICTOR.pptx
PPT
Nodejs justdigital
PDF
Node.js e Express
PDF
Node.js no Pagar.me
PDF
Node.JS - Workshop do básico ao avançado
PDF
TDC2018SP | Trilha Node.js - Melhores praticas de desempenho utilizando Node....
PDF
O bom, o mau, o vilão... e o node.js
PDF
Por que Node JS?
PDF
Node js - O poder do JavaScript do lado do servidor
PDF
PDF
Node.js for Noobs
Node.js - Devo adotar na minha empresa?
Introdução ao Nodejs
Hangout Tempo Real Eventos - Nodejs - Os Primeiros Passos
NodeJS - Tutorial de forma simples e pratica.
Node js - Javascript Server Side
Node.js: 5 razões para começar a utilizar
Node.js
Conhecendo o Nodejs
Uma visão rápida sobre Nodejs
APRESENTAÇÃO ISAQUE E RAQUEL QUARTA- VICTOR.pptx
Nodejs justdigital
Node.js e Express
Node.js no Pagar.me
Node.JS - Workshop do básico ao avançado
TDC2018SP | Trilha Node.js - Melhores praticas de desempenho utilizando Node....
O bom, o mau, o vilão... e o node.js
Por que Node JS?
Node js - O poder do JavaScript do lado do servidor
Node.js for Noobs

Último (20)

PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Émile Durkheim slide elaborado muito bom
PPT
Sistemas de Informação em Saúde Aplicada.ppt
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
COBITxITIL-Entenda as diferença em uso governança TI
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Curso de Java 9 - (Threads) Multitarefas.pptx
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Émile Durkheim slide elaborado muito bom
Sistemas de Informação em Saúde Aplicada.ppt
Custos e liquidação no SAP Transportation Management, TM130 Col18
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx

Node.js, Uma breve introdução

  • 2. node.js? - Ryan Dahl - Criado em 2009 - Escrito em C++ e Javascript - Multiplataforma (Linux, Windows e Mac) - Foco em alta escalabilidade e em tempo real - Versão atual: 0.10.26 / Fev 18, 2014 - Open Source mantido pela Joyment https://github.com/joyent/node
  • 3. O que é? - Plataforma para utlizar Javascript fora do navegador. (Focada em servidores) - Escrita sobre interpretador V8 do Google Ou seja, essa plataforma é escrita com códigos C++ e Javascript - Baseada em eventos - I/O não bloqueante
  • 16. Quer dizer que... - Você tem o poder do Javascript para criar aplicações orientadas a eventos e assíncronas em qualquer máquina. - Sua premissa é facilitar a construção de aplicações de rede (servidores web, etc.) sem bloqueio de leitura e escrita. - Ao instalar o node, o mesmo já vem com uma biblioteca inicial muito poderosa. http://nodejs.org/api - Comunidade de desenvolvedores extremamente entusiasmada.
  • 17. What? var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello Worldn'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/'); >> node hello.js Server running at http://127.0.0.1:1337/'
  • 18. Por que usar? - Aplicações com dados em tempo real - Aplicações com muitas, muitas requisições ao mesmo tempo - Aplicações com colaboração entre muitos usuários - Chats - Envios de dados (upload de arquivos) - Jogos - Servidor para diferentes protocolos ao mesmo tempo - APIs (Sim, web apis, bitches)
  • 19. Por que NÃO usar? - Aplicações que utilizam muito processamento (redimensionamento de imagens, renderização de vídeos, cálculos matemáticos pesados, etc.) - Simples páginas HTML - Aplicações baseadas em conteúdo, CRUDs, com muitas regras de negócio - Aplicações dependentes de bancos de dados relacionais
  • 20. Empresas que utilizam Mais em: http://nodejs.org/industry/ e: http://bit.ly/1kBolIL
  • 21. Então, node.js é... - Plataforma para desenvolver aplicações com Javascript - Com foco em para alta escalabilidade para alta concorrência - Performance com altas cargas de acesso - Multiplataforma - Comunidade de desenvolvedores super ativa - Ainda imatura - Não soluciona todos os problemas do mundo
  • 23. node.js js fora do seu navegador
  • 24. The good stuff - Javascript - Fácil de instalar (hoje é) - Multiplataforma - V8 - Pacotes, muitos pacotes - Event Loop - Conduz os desenvolvedores ao mindset de “Evented/Async I/O”
  • 25. Event Loop - Single-Thread que escuta por todas requisições ao servidor - Ao receber req. que precisam realizar operações bloqueantes (acesso a disco, computação pesada, etc), criar uma tarefa async para o SO e guarda um callback para esse tarefa - Continua recebendo outras requições, até receber a resposta da tarefa enviado o SO, então executa o callback, espera até estar livre e executa esta respota - Abstrai toda implementação de gerenciamento de threads, consumo de memória, etc
  • 28. Multi vs Single threaded concurrency Multi-threaded concurrency Single threaded concurrency
  • 29. Sync vs Async I/O Synchronous I/O Asynchronous I/O
  • 30. Alguns problemas - É Javascript Algumas bizarrices (www.wtfjs.com) Facilidade em não seguir padrões Não é orientado a objetos - Por default, exceções matam o processo - Vazamentos de memória difíceis de encontrar - Ainda é beta (~v 0.10.26) - Single thread trava em códigos de alto processamento - Falta de maturidade para utilizar bancos de dados relacionais
  • 31. “I got 99 problems but a callback aint one” Callback HELL
  • 32. npm - node packeges manager - É o gerenciador de pacotes oficial do node. - Nele já são mais de 61k pacotes escritos pela comunidade de desenvolvedores. - Instalado junto ao node, que é uma dependência (óbvia) para o uso do npm. - Utilizado através da linha de comando, possuí uma API poderosa para a instalação e busca de pacotes. https://www.npmjs.org/doc/
  • 33. Utilizando o npm: Instalando pacote
  • 34. Utilizando o npm: Baixando pacotes Na pasta root do projeto, criar o arquivo packages.json. { 'name': 'mini-chat' , version: '0.0.1', description: 'Chat app.', engines: { 'node': '>= 0.6.x', npm: '>= 1.1.x' }, dependencies: { 'express': '>= 2.x.x', now: '>= 0.x.x' }, }
  • 36. Exemplos SHOW ME THE CODE https://github.com/ruanmyv/node-examples
  • 41. Fim²
  • 42. Show me the links!! http://nodebr.com/ http://howtonode.org/ http://nodejs.org/ https://github.com/joyent/node http://www.nodebeginner.org/ http://callbackhell.com/ Why The Hell Would I Use Node.js? A Case-by-Case Introduction Node Tools for VS - Youtube Introducing node.js Tools for Visual Studio Node.js para iniciantes O que é npm do nodejs O que exatamente é o Node.js? What are the disadvantages of using Node.js? Node.js for Beginners Java EE threads v/s Node.js – which is better for concurrent data processing operations Beginner’s Guide To Node.Js (Server-Side JavaScript) Node.js para leigos
  • 43. Show me the links!! Slideshare - Node.js: serious business Slideshare - Node.js campus party brasil 2011 Future-proofing Your Apps: Cloud Foundry and Node.js 7 minimal Node.js webframeworks Concurrent programming for scalable web architetures You’ll never believe how LinkedIn built its new iPad app (exclusive) [Linkedin] Blazing fast node.js: 10 performance tips from LinkedIn Mobile [Linkedin] Here's why you should be happy that Microsoft is embracing Node.js [Microsoft] Yahoo! Announces Cocktails Shaken, Not Stirred [Yahoo] Why Walmart is using Node.js [Walmart] Fluent 2013: Bill Scott, "Clash of the Titans: Releasing the Kraken | NodeJS @paypal" [Paypal]