Your SlideShare is downloading. ×
0
Express
Desenvolvimento web de alto nível e
performance com node.js
Francisco Souza
@franciscosouza
www.giran.com.br
www.f...
Antes de tudo...
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
re...
Sinatra
Sinatra
require 'sinatra'
get '/' do
"Hello Worldn"
end
Express
http://www.flickr.com/photos/benchilada/2467374335/
Mais um
framework?
Aliás...
Mais uma tecnologia?
Mais uma tecnologia?
JavaScript server side?!
http://lamumar.files.wordpress.com/2010/06/scared-
monkey.png
Assíncrono
var express = require('express');
var app = express.createServer();
app.get('/', function (request, response) {
response.s...
var express = require('express');
var app = express.createServer();
app.get('/', function (request, response) {
response.s...
http://www.flickr.com/photos/ramdac/373881476/
Fácil de instalar
$ npm install express
http://inblogs.com.br/media/blogs/news/susan_boyle_01.jpg
http://1.bp.blogspot.com/_LMyAb-qFdMo/ScF7LC89nXI/AAAAAAAAAL8/uR2i_RZB7c4/s320/cabeamento_estruturado_redes_08.jpg
Configu...
app.configure(function(){
app.use(express.methodOverride());
app.use(express.bodyDecoder());
app.use(app.router);
app.use(...
Múltiplos ambientes?
Múltiplos ambientes?
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showSta...
Múltiplos ambientes?
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showSta...
http://www.flickr.com/photos/aurelian/3526863186/
Roteamento
descomplicado
app.get('/pessoas/1', callback);
app.get('/pessoas/1', callback);
app.post('/pessoas', callback);
app.put('/pessoas/1', callback);
app.del('/pessoas/1', ca...
<input type="hidden" name="_method" value="put" />
http://www.flickr.com/photos/josephrobertson/4429285449/
<input type="h...
http://www.desenhosanimadosclube.com/imagens/desenhosanimadosclube.com/produtos/H%20-%20Desenhos/Homem_Elastico2.jpg
Exten...
Express é “só” controller...
http://www.baixaki.com.br/imagens/materias/372014371.jpg
tinyurl.com/nodemodules
http://www.flickr.com/photos/patrickgage/3738107746/
biblio.js
app.get('/books', function (request, response) {
var options = {
locals: {
books : ['Java for girls', 'Lord of the Rings']...
app.get('/books', function (request, response) {
var options = {
locals: {
books : ['Java for girls', 'Lord of the Rings']...
http://www.noupe.com/wp-content/uploads/2009/11/why.jpg
http://www.deadline.com/wp-content/uploads/2010/08/justin-bieber-my-world-2.jpg
Francisco Souza
@franciscosouza
www.franciscosouza.com.br
http://www.flickr.com/photos/kimonomania/474758933/
Express: Desenvolvimento web de alto nível e performance com node.js
Express: Desenvolvimento web de alto nível e performance com node.js
Express: Desenvolvimento web de alto nível e performance com node.js
Upcoming SlideShare
Loading in...5
×

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

2,620

Published on

Apresentação feita no Giran Siege (http://blog.giran.com.br/2010/09/giran-siege-palestras-internas-da-giran/), no dia 28/10/2010.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,620
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

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

    Clipping is a handy way to collect important slides you want to go back to later.

×