Top Banner
Express Desenvolvimento web de alto nível e performance com node.js Francisco Souza @franciscosouza www.giran.com.br www.franciscosouza.com.br [email protected]
37

Express: Desenvolvimento web de alto nível e performance com node.js

May 19, 2015

Download

Technology

Francisco Souza

Apresentação feita no Giran Siege (http://blog.giran.com.br/2010/09/giran-siege-palestras-internas-da-giran/), no dia 28/10/2010.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Express: Desenvolvimento web de alto nível e performance com node.js

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

Antes de tudo...

Page 3: Express: Desenvolvimento web de alto nível e performance com node.js
Page 4: Express: Desenvolvimento web de alto nível e performance com node.js

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

Sinatra

Page 6: Express: Desenvolvimento web de alto nível e performance com node.js

Sinatra

require 'sinatra'get '/' do "Hello World\n"end

Page 7: Express: Desenvolvimento web de alto nível e performance com node.js

Express

Page 8: Express: Desenvolvimento web de alto nível e performance com node.js

http://www.flickr.com/photos/benchilada/2467374335/

Mais um framework?

Page 9: Express: Desenvolvimento web de alto nível e performance com node.js

Aliás...

Page 10: Express: Desenvolvimento web de alto nível e performance com node.js

Mais uma tecnologia?

Page 11: Express: Desenvolvimento web de alto nível e performance com node.js

Mais uma tecnologia?

Page 12: Express: Desenvolvimento web de alto nível e performance com node.js

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

Assíncrono

Page 14: Express: Desenvolvimento web de alto nível e performance com node.js

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

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

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

$ 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

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

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

Múltiplos ambientes?

Page 21: Express: Desenvolvimento web de alto nível e performance com node.js

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

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

http://www.flickr.com/photos/aurelian/3526863186/

Roteamento descomplicado

Page 24: Express: Desenvolvimento web de alto nível e performance com node.js

app.get('/pessoas/1', callback);

Page 25: Express: Desenvolvimento web de alto nível e performance com node.js

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

<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

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

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

tinyurl.com/nodemodules

Page 30: Express: Desenvolvimento web de alto nível e performance com node.js

http://www.flickr.com/photos/patrickgage/3738107746/

biblio.js

Page 31: Express: Desenvolvimento web de alto nível e performance com node.js

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

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

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
Page 35: Express: Desenvolvimento web de alto nível e performance com node.js
Page 36: Express: Desenvolvimento web de alto nível e performance com node.js

http://www.deadline.com/wp-content/uploads/2010/08/justin-bieber-my-world-2.jpg

Page 37: Express: Desenvolvimento web de alto nível e performance com node.js

Francisco [email protected]

http://www.flickr.com/photos/kimonomania/474758933/