SlideShare a Scribd company logo
1 of 17
Download to read offline
Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br
Core Modules - http
Parte 1
Importando o módulo http
page.js
1. var http = require('http');
Criando o servidor
page.js
1. var http = require('http');
2.
3. http.createServer();
Escutando na porta 3412
page.js
1. var http = require('http');
2.
3. http.createServer().listen(3412);
Retornando HTML
Tratando a requisição
page.js
1. var http = require('http');
2.
3. http.createServer(function (req, res) {
4. }).listen(3412);
Escrevendo no corpo da resposta
page.js
1. var http = require('http');
2.
3. http.createServer(function (req, res) {
4. res.write(
5. '<html>' +
6. '<head>' +
7. '<title>Hello World</title>' +
8. '</head>' +
9. '<body>' +
10. '<h1>Hello World</h1>' +
11. '</body>' +
12. '</html>'
13. );
14. }).listen(3412);
Encerrando a resposta
page.js
1. var http = require('http');
2.
3. http.createServer(function (req, res) {
4. res.write(
5. '<html>' +
6. '<head>' +
7. '<title>Hello World</title>' +
8. '</head>' +
9. '<body>' +
10. '<h1>Hello World</h1>' +
11. '</body>' +
12. '</html>'
13. );
14. res.end();
15. }).listen(3412);
Retornando um JSON
Tratando a requisição
http.js
1. var http = require('http');
2.
3. http.createServer(function (req, res) {
4. }).listen(3412);
Escrevendo no corpo da resposta
http.js
1. var http = require('http');
2.
3. var operadoras = [
4. {nome: "Oi", codigo: 14, categoria: "Celular", preco: 2},
5. {nome: "Vivo", codigo: 15, categoria: "Celular", preco: 1},
6. {nome: "Tim", codigo: 41, categoria: "Celular", preco: 3}
7. ];
8.
9. http.createServer(function (req, res) {
10. res.write(JSON.stringify(operadoras));
11. }).listen(3412);
Escrevendo no corpo da resposta
http.js
1. var http = require('http');
2.
3. var operadoras = [
4. {nome: "Oi", codigo: 14, categoria: "Celular", preco: 2},
5. {nome: "Vivo", codigo: 15, categoria: "Celular", preco: 1},
6. {nome: "Tim", codigo: 41, categoria: "Celular", preco: 3}
7. ];
8.
9. http.createServer(function (req, res) {
10. res.write(JSON.stringify(operadoras));
11. res.end();
12. }).listen(3412);
Adicionando cabeçalhos na resposta
http.js
1. var http = require('http');
2.
3. var operadoras = [
4. {nome: "Oi", codigo: 14, categoria: "Celular", preco: 2},
5. {nome: "Vivo", codigo: 15, categoria: "Celular", preco: 1},
6. {nome: "Tim", codigo: 41, categoria: "Celular", preco: 3}
7. ];
8.
9. http.createServer(function (req, res) {
10. res.setHeader('Access-Control-Allow-Origin', '*');
11. res.write(JSON.stringify(operadoras));
12. res.end();
13. }).listen(3412);
Escrevendo no corpo da resposta
http.js
1. var http = require('http');
2.
3. var operadoras = [
4. {nome: "Oi", codigo: 14, categoria: "Celular", preco: 2},
5. {nome: "Vivo", codigo: 15, categoria: "Celular", preco: 1},
6. {nome: "Tim", codigo: 41, categoria: "Celular", preco: 3}
7. ];
8.
9. var contatos = [
10. {id: 1, nome: "Bruno", telefone: "9999-2222", data: new Date(), operadora: operadoras[0]},
11. {id: 2, nome: "Sandra", telefone: "9999-3333", data: new Date(), operadora: operadoras[1]},
12. {id: 3, nome: "Mariana", telefone: "9999-9999", data: new Date(), operadora: operadoras[2]}
13. ];
14.
15. http.createServer(function (req, res) {
16. res.setHeader('Access-Control-Allow-Origin', '*');
17. if (req.url === '/operadoras') res.write(JSON.stringify(operadoras));
18. if (req.url === '/contatos') res.write(JSON.stringify(contatos));
19. res.end();
20. }).listen(3412);
Estruturando um roteador de requisições
Rodrigo Branas
Agile Code: http://www.agilecode.com.br
Twitter: @rodrigobranas
SlideShare: http://www.slideshare.com/rodrigobranas
YouTube: http://www.youtube.com/rodrigobranas
LinkedIn: http://br.linkedin.com/in/rodrigobranas
+Plus: https://plus.google.com/+RodrigoBranas
GitHub: http://www.github.com/rodrigobranas

More Related Content

What's hot

Introdução ao AngularJS
Introdução ao AngularJSIntrodução ao AngularJS
Introdução ao AngularJSRodrigo Branas
 
AngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasAngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasJanderson Fernandes Cardoso
 
Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Julian Cesar
 
Angular JS, você precisa conhecer
Angular JS, você precisa conhecerAngular JS, você precisa conhecer
Angular JS, você precisa conhecermeet2Brains
 
Zend Framework 1.11
Zend Framework 1.11Zend Framework 1.11
Zend Framework 1.11Cezar Souza
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2Cezar Souza
 
AngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideAngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideSergio Azevedo
 
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JSDesenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JSRomulo Fagundes
 
Android chat app com Node.js
Android chat app com Node.jsAndroid chat app com Node.js
Android chat app com Node.jsLuiz Duarte
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseLuiz Duarte
 
O Poderoso AngularJS
O Poderoso AngularJSO Poderoso AngularJS
O Poderoso AngularJSBeto Muniz
 
Começando com Zend Framework 2
Começando com Zend Framework 2Começando com Zend Framework 2
Começando com Zend Framework 2Cezar Souza
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN StackBruno Catão
 

What's hot (20)

Introdução ao AngularJS
Introdução ao AngularJSIntrodução ao AngularJS
Introdução ao AngularJS
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
AngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivasAngularJS - 10 passos para aprender a criar suas directivas
AngularJS - 10 passos para aprender a criar suas directivas
 
Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)Desenvolvimento Front end (AngularJS e Bootstrap)
Desenvolvimento Front end (AngularJS e Bootstrap)
 
Mean Stack
Mean StackMean Stack
Mean Stack
 
Angular JS, você precisa conhecer
Angular JS, você precisa conhecerAngular JS, você precisa conhecer
Angular JS, você precisa conhecer
 
Zend Framework 1.11
Zend Framework 1.11Zend Framework 1.11
Zend Framework 1.11
 
Boas práticas de API Design
Boas práticas de API DesignBoas práticas de API Design
Boas práticas de API Design
 
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
ZF2 básico : Desenvolvendo um Blog com o Zend Framework 2
 
AngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-SideAngularJS Abraçando o MVC Client-Side
AngularJS Abraçando o MVC Client-Side
 
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JSDesenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
Desenvolvendo com Node.JS - Mongoose + MongoDB + Vue.JS
 
Android chat app com Node.js
Android chat app com Node.jsAndroid chat app com Node.js
Android chat app com Node.js
 
Java script aula 02 - operadores
Java script   aula 02 - operadoresJava script   aula 02 - operadores
Java script aula 02 - operadores
 
Java script - funções
Java script - funçõesJava script - funções
Java script - funções
 
Tutorial Dwr - Configuração e Uso
Tutorial Dwr - Configuração e UsoTutorial Dwr - Configuração e Uso
Tutorial Dwr - Configuração e Uso
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + Mongoose
 
O Poderoso AngularJS
O Poderoso AngularJSO Poderoso AngularJS
O Poderoso AngularJS
 
Java script aula 10 - angularjs
Java script   aula 10 - angularjsJava script   aula 10 - angularjs
Java script aula 10 - angularjs
 
Começando com Zend Framework 2
Começando com Zend Framework 2Começando com Zend Framework 2
Começando com Zend Framework 2
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 

Similar to Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas

Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3David Ruiz
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSRodrigo Branas
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsSuissa
 
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...tdc-globalcode
 
Golang para desenvolvedores pragmáticos parte 2
Golang para desenvolvedores pragmáticos  parte 2Golang para desenvolvedores pragmáticos  parte 2
Golang para desenvolvedores pragmáticos parte 2Wilson Júnior
 
PHP e Ajax com XAJAX
PHP e Ajax com XAJAXPHP e Ajax com XAJAX
PHP e Ajax com XAJAXRafael Dohms
 
Mobileconf dicas-android
Mobileconf dicas-androidMobileconf dicas-android
Mobileconf dicas-androidAlberto Souza
 
Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSMatheus Donizete
 
Introdução aos Servlets e JSPs
Introdução aos Servlets e JSPsIntrodução aos Servlets e JSPs
Introdução aos Servlets e JSPsLuiz Ricardo Silva
 
Construindo portlets para IBM WebSphere Portal – Parte 2
Construindo portlets para IBM WebSphere Portal – Parte 2Construindo portlets para IBM WebSphere Portal – Parte 2
Construindo portlets para IBM WebSphere Portal – Parte 2rodrigoareis
 
Aplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRSAplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRSJackson F. de A. Mafra
 
Node.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo BranasNode.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo BranasRodrigo Branas
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super heroElton Minetto
 
Testes em Aplicações Web com Cactus
Testes em Aplicações Web com CactusTestes em Aplicações Web com Cactus
Testes em Aplicações Web com CactusDenis L Presciliano
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?Rafael Benevides
 
O que esperar do Zend Framework 3
O que esperar do Zend Framework 3O que esperar do Zend Framework 3
O que esperar do Zend Framework 3Flávio Lisboa
 

Similar to Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas (20)

Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3Web 2.0 e AJAX - Parte 2 / 3
Web 2.0 e AJAX - Parte 2 / 3
 
HTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJSHTTP, JSON, REST e AJAX com AngularJS
HTTP, JSON, REST e AJAX com AngularJS
 
Ajax em java
Ajax em javaAjax em java
Ajax em java
 
DevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webappsDevDay - O elo perdido: sincronizando webapps
DevDay - O elo perdido: sincronizando webapps
 
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...
 
Golang para desenvolvedores pragmáticos parte 2
Golang para desenvolvedores pragmáticos  parte 2Golang para desenvolvedores pragmáticos  parte 2
Golang para desenvolvedores pragmáticos parte 2
 
PHP e Ajax com XAJAX
PHP e Ajax com XAJAXPHP e Ajax com XAJAX
PHP e Ajax com XAJAX
 
Mobileconf dicas-android
Mobileconf dicas-androidMobileconf dicas-android
Mobileconf dicas-android
 
Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JS
 
Introdução aos Servlets e JSPs
Introdução aos Servlets e JSPsIntrodução aos Servlets e JSPs
Introdução aos Servlets e JSPs
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
 
Fundamentos de Sockets
Fundamentos de SocketsFundamentos de Sockets
Fundamentos de Sockets
 
Fundamentos de Sockets
Fundamentos de SocketsFundamentos de Sockets
Fundamentos de Sockets
 
Construindo portlets para IBM WebSphere Portal – Parte 2
Construindo portlets para IBM WebSphere Portal – Parte 2Construindo portlets para IBM WebSphere Portal – Parte 2
Construindo portlets para IBM WebSphere Portal – Parte 2
 
Aplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRSAplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRS
 
Node.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo BranasNode.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo Branas
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
Testes em Aplicações Web com Cactus
Testes em Aplicações Web com CactusTestes em Aplicações Web com Cactus
Testes em Aplicações Web com Cactus
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?
 
O que esperar do Zend Framework 3
O que esperar do Zend Framework 3O que esperar do Zend Framework 3
O que esperar do Zend Framework 3
 

More from Rodrigo Branas

Node.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo BranasNode.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo BranasRodrigo Branas
 
Node.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo BranasNode.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo BranasRodrigo Branas
 
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo BranasNode.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo BranasRodrigo Branas
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasRodrigo Branas
 
#6 - Git - Desfazendo as coisas
#6 - Git - Desfazendo as coisas#6 - Git - Desfazendo as coisas
#6 - Git - Desfazendo as coisasRodrigo Branas
 
#1 - Git - Introdução
#1 - Git - Introdução#1 - Git - Introdução
#1 - Git - IntroduçãoRodrigo Branas
 
#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remotoRodrigo Branas
 
#3 - Git - Branching e Merging
#3 - Git - Branching e Merging#3 - Git - Branching e Merging
#3 - Git - Branching e MergingRodrigo Branas
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões RegularesRodrigo Branas
 
HTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSHTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSRodrigo Branas
 
Criando Filtros com AngularJS
Criando Filtros com AngularJSCriando Filtros com AngularJS
Criando Filtros com AngularJSRodrigo Branas
 
Criando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSCriando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSRodrigo Branas
 
Test-Driven Development com JavaScript, Jasmine Karma
Test-Driven Development com JavaScript, Jasmine  KarmaTest-Driven Development com JavaScript, Jasmine  Karma
Test-Driven Development com JavaScript, Jasmine KarmaRodrigo Branas
 

More from Rodrigo Branas (20)

Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Node.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo BranasNode.js - #4 - Timers - Rodrigo Branas
Node.js - #4 - Timers - Rodrigo Branas
 
Node.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo BranasNode.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo Branas
 
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo BranasNode.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
 
Node.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo BranasNode.js - #1 - Introdução - Rodrigo Branas
Node.js - #1 - Introdução - Rodrigo Branas
 
#6 - Git - Desfazendo as coisas
#6 - Git - Desfazendo as coisas#6 - Git - Desfazendo as coisas
#6 - Git - Desfazendo as coisas
 
#1 - Git - Introdução
#1 - Git - Introdução#1 - Git - Introdução
#1 - Git - Introdução
 
#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto
 
#4 - Git - Stash
#4 - Git - Stash#4 - Git - Stash
#4 - Git - Stash
 
#3 - Git - Branching e Merging
#3 - Git - Branching e Merging#3 - Git - Branching e Merging
#3 - Git - Branching e Merging
 
#2 - Git - DAG
#2 - Git - DAG#2 - Git - DAG
#2 - Git - DAG
 
JavaScript - Date
JavaScript - DateJavaScript - Date
JavaScript - Date
 
JavaScript - Expressões Regulares
JavaScript - Expressões RegularesJavaScript - Expressões Regulares
JavaScript - Expressões Regulares
 
Scope AngularJS
Scope AngularJSScope AngularJS
Scope AngularJS
 
HTTP Interceptors com AngularJS
HTTP Interceptors com AngularJSHTTP Interceptors com AngularJS
HTTP Interceptors com AngularJS
 
Criando Filtros com AngularJS
Criando Filtros com AngularJSCriando Filtros com AngularJS
Criando Filtros com AngularJS
 
Criando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJSCriando aplicações Single-Page com AngularJS
Criando aplicações Single-Page com AngularJS
 
Selenium - WebDriver
Selenium - WebDriverSelenium - WebDriver
Selenium - WebDriver
 
Test-Driven Development com JavaScript, Jasmine Karma
Test-Driven Development com JavaScript, Jasmine  KarmaTest-Driven Development com JavaScript, Jasmine  Karma
Test-Driven Development com JavaScript, Jasmine Karma
 
Grunt
GruntGrunt
Grunt
 

Node.js - #7 - Core Modules - http - Parte 1 - Rodrigo Branas

  • 1. Rodrigo Branas – @rodrigobranas - http://www.agilecode.com.br Core Modules - http Parte 1
  • 2. Importando o módulo http page.js 1. var http = require('http');
  • 3. Criando o servidor page.js 1. var http = require('http'); 2. 3. http.createServer();
  • 4. Escutando na porta 3412 page.js 1. var http = require('http'); 2. 3. http.createServer().listen(3412);
  • 6. Tratando a requisição page.js 1. var http = require('http'); 2. 3. http.createServer(function (req, res) { 4. }).listen(3412);
  • 7. Escrevendo no corpo da resposta page.js 1. var http = require('http'); 2. 3. http.createServer(function (req, res) { 4. res.write( 5. '<html>' + 6. '<head>' + 7. '<title>Hello World</title>' + 8. '</head>' + 9. '<body>' + 10. '<h1>Hello World</h1>' + 11. '</body>' + 12. '</html>' 13. ); 14. }).listen(3412);
  • 8. Encerrando a resposta page.js 1. var http = require('http'); 2. 3. http.createServer(function (req, res) { 4. res.write( 5. '<html>' + 6. '<head>' + 7. '<title>Hello World</title>' + 8. '</head>' + 9. '<body>' + 10. '<h1>Hello World</h1>' + 11. '</body>' + 12. '</html>' 13. ); 14. res.end(); 15. }).listen(3412);
  • 9.
  • 11. Tratando a requisição http.js 1. var http = require('http'); 2. 3. http.createServer(function (req, res) { 4. }).listen(3412);
  • 12. Escrevendo no corpo da resposta http.js 1. var http = require('http'); 2. 3. var operadoras = [ 4. {nome: "Oi", codigo: 14, categoria: "Celular", preco: 2}, 5. {nome: "Vivo", codigo: 15, categoria: "Celular", preco: 1}, 6. {nome: "Tim", codigo: 41, categoria: "Celular", preco: 3} 7. ]; 8. 9. http.createServer(function (req, res) { 10. res.write(JSON.stringify(operadoras)); 11. }).listen(3412);
  • 13. Escrevendo no corpo da resposta http.js 1. var http = require('http'); 2. 3. var operadoras = [ 4. {nome: "Oi", codigo: 14, categoria: "Celular", preco: 2}, 5. {nome: "Vivo", codigo: 15, categoria: "Celular", preco: 1}, 6. {nome: "Tim", codigo: 41, categoria: "Celular", preco: 3} 7. ]; 8. 9. http.createServer(function (req, res) { 10. res.write(JSON.stringify(operadoras)); 11. res.end(); 12. }).listen(3412);
  • 14. Adicionando cabeçalhos na resposta http.js 1. var http = require('http'); 2. 3. var operadoras = [ 4. {nome: "Oi", codigo: 14, categoria: "Celular", preco: 2}, 5. {nome: "Vivo", codigo: 15, categoria: "Celular", preco: 1}, 6. {nome: "Tim", codigo: 41, categoria: "Celular", preco: 3} 7. ]; 8. 9. http.createServer(function (req, res) { 10. res.setHeader('Access-Control-Allow-Origin', '*'); 11. res.write(JSON.stringify(operadoras)); 12. res.end(); 13. }).listen(3412);
  • 15. Escrevendo no corpo da resposta http.js 1. var http = require('http'); 2. 3. var operadoras = [ 4. {nome: "Oi", codigo: 14, categoria: "Celular", preco: 2}, 5. {nome: "Vivo", codigo: 15, categoria: "Celular", preco: 1}, 6. {nome: "Tim", codigo: 41, categoria: "Celular", preco: 3} 7. ]; 8. 9. var contatos = [ 10. {id: 1, nome: "Bruno", telefone: "9999-2222", data: new Date(), operadora: operadoras[0]}, 11. {id: 2, nome: "Sandra", telefone: "9999-3333", data: new Date(), operadora: operadoras[1]}, 12. {id: 3, nome: "Mariana", telefone: "9999-9999", data: new Date(), operadora: operadoras[2]} 13. ]; 14. 15. http.createServer(function (req, res) { 16. res.setHeader('Access-Control-Allow-Origin', '*'); 17. if (req.url === '/operadoras') res.write(JSON.stringify(operadoras)); 18. if (req.url === '/contatos') res.write(JSON.stringify(contatos)); 19. res.end(); 20. }).listen(3412);
  • 16. Estruturando um roteador de requisições
  • 17. Rodrigo Branas Agile Code: http://www.agilecode.com.br Twitter: @rodrigobranas SlideShare: http://www.slideshare.com/rodrigobranas YouTube: http://www.youtube.com/rodrigobranas LinkedIn: http://br.linkedin.com/in/rodrigobranas +Plus: https://plus.google.com/+RodrigoBranas GitHub: http://www.github.com/rodrigobranas