Express: Desenvolvimento web de alto nível e performance com node.js
-
Upload
francisco-souza -
Category
Technology
-
view
2.602 -
download
2
description
Transcript of Express: Desenvolvimento web de alto nível e performance com node.js
![Page 1: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/1.jpg)
ExpressDesenvolvimento web de alto nível e
performance com node.js
Francisco Souza@franciscosouza
www.giran.com.brwww.franciscosouza.com.brfrancisco@franciscosouza.net
![Page 2: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/2.jpg)
Antes de tudo...
![Page 3: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/3.jpg)
![Page 4: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/4.jpg)
var http = require('http');
http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n');}).listen(8124, '127.0.0.1');
console.log('Server running at http://127.0.0.1:8124/');
![Page 5: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/5.jpg)
Sinatra
![Page 6: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/6.jpg)
Sinatra
require 'sinatra'get '/' do "Hello World\n"end
![Page 7: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/7.jpg)
Express
![Page 8: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/8.jpg)
http://www.flickr.com/photos/benchilada/2467374335/
Mais um framework?
![Page 9: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/9.jpg)
Aliás...
![Page 10: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/10.jpg)
Mais uma tecnologia?
![Page 11: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/11.jpg)
Mais uma tecnologia?
![Page 12: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/12.jpg)
JavaScript server side?!
http://lamumar.files.wordpress.com/2010/06/scared-monkey.png
![Page 13: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/13.jpg)
Assíncrono
![Page 14: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/14.jpg)
var express = require('express');var app = express.createServer();
app.get('/', function (request, response) { response.send('Hello world!'); });
app.listen(3000);
![Page 15: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/15.jpg)
var express = require('express');var app = express.createServer();
app.get('/', function (request, response) { response.send('Hello world!'); });
app.listen(3000);
![Page 16: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/16.jpg)
http://www.flickr.com/photos/ramdac/373881476/
Fácil de instalar
![Page 17: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/17.jpg)
$ npm install express
http://inblogs.com.br/media/blogs/news/susan_boyle_01.jpg
![Page 18: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/18.jpg)
http://1.bp.blogspot.com/_LMyAb-qFdMo/ScF7LC89nXI/AAAAAAAAAL8/uR2i_RZB7c4/s320/cabeamento_estruturado_redes_08.jpg
Configuração intuitiva
![Page 19: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/19.jpg)
app.configure(function(){ app.use(express.methodOverride()); app.use(express.bodyDecoder()); app.use(app.router); app.use(express.staticProvider(__dirname + '/public'));});
![Page 20: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/20.jpg)
Múltiplos ambientes?
![Page 21: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/21.jpg)
Múltiplos ambientes?
app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));});
![Page 22: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/22.jpg)
Múltiplos ambientes?
app.configure('development', function(){ app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));});
app.configure('production', function(){ app.use(express.errorHandler());});
![Page 23: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/23.jpg)
http://www.flickr.com/photos/aurelian/3526863186/
Roteamento descomplicado
![Page 24: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/24.jpg)
app.get('/pessoas/1', callback);
![Page 25: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/25.jpg)
app.get('/pessoas/1', callback);
app.post('/pessoas', callback);
app.put('/pessoas/1', callback);
app.del('/pessoas/1', callback);
RESTful!
![Page 26: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/26.jpg)
<input type="hidden" name="_method" value="put" />
http://www.flickr.com/photos/josephrobertson/4429285449/
<input type="hidden" name="_method" value="delete" />
![Page 27: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/27.jpg)
http://www.desenhosanimadosclube.com/imagens/desenhosanimadosclube.com/produtos/H%20-%20Desenhos/Homem_Elastico2.jpg
Extensível
![Page 28: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/28.jpg)
Express é “só” controller...
http://www.baixaki.com.br/imagens/materias/372014371.jpg
![Page 29: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/29.jpg)
tinyurl.com/nodemodules
![Page 30: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/30.jpg)
http://www.flickr.com/photos/patrickgage/3738107746/
biblio.js
![Page 31: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/31.jpg)
app.get('/books', function (request, response) { var options = { locals: { books : ['Java for girls', 'Lord of the Rings'] } }
jade.renderFile(__dirname + '/templates/list.jade', options, function (err, html) { if (err) { throw err; }; response.send(html); });});
Assíncrono! :)
![Page 32: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/32.jpg)
app.get('/books', function (request, response) { var options = { locals: { books : ['Java for girls', 'Lord of the Rings'] } }
jade.renderFile(__dirname + '/templates/list.jade', options, function (err, html) { if (err) { throw err; }; response.send(html); });});
Assíncrono! :)
!!! 5html(lang="en") head title Books body h1 Books list #container ul - each book in books li #{book}
![Page 33: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/33.jpg)
http://www.noupe.com/wp-content/uploads/2009/11/why.jpg
![Page 34: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/34.jpg)
![Page 35: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/35.jpg)
![Page 36: Express: Desenvolvimento web de alto nível e performance com node.js](https://reader035.fdocuments.net/reader035/viewer/2022062704/555a8ecfd8b42a991b8b4794/html5/thumbnails/36.jpg)
http://www.deadline.com/wp-content/uploads/2010/08/justin-bieber-my-world-2.jpg