Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Building web apps with Express
Search
Andy Appleton
February 06, 2013
Technology
4
500
Building web apps with Express
An introduction to the Express web framework for Node.js
Andy Appleton
February 06, 2013
Tweet
Share
More Decks by Andy Appleton
See All by Andy Appleton
Done is better than perfect
appltn
0
590
Rage against the state machine
appltn
1
530
Modular UI with (Angular || Ember)
appltn
0
120
The Modern JavaScript Application
appltn
5
670
Object Creation Pattern Performance
appltn
1
820
Introducing Mint Source
appltn
1
410
Other Decks in Technology
See All in Technology
トラブルの大半は「言ってない」x「言ってない」じゃねーか!!
ichimichi
0
110
GoとWasmでつくる軽量ブラウザUI
keyl0ve
0
130
Claude Codeで実践するスペック駆動開発入門 / sdd-with-claude_code
yoshidashingo
3
4.6k
EKSで実践する オブザーバビリティの現在地
honmarkhunt
2
310
フルスタックGoでスコア改ざんを防いだ話
ponyo877
0
520
ローカルでLLMを使ってみよう
kosmosebi
0
190
Snowflake Night #2 LT
taromatsui_cccmkhd
0
150
Exadata Fleet Update
oracle4engineer
PRO
0
1.2k
社内ワークショップで終わらせない 業務改善AIエージェント開発
lycorptech_jp
PRO
1
370
使って学ぼう MCP (と GitHub Codespaces)
tsubakimoto_s
1
220
Claude Codeと駆け抜ける 情報収集と実践録
sontixyou
1
1k
Getting started with Google Antigravity
meteatamel
0
360
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.1k
Building Applications with DynamoDB
mza
96
6.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Agile that works and the tools we love
rasmusluckow
331
21k
The SEO Collaboration Effect
kristinabergwall1
0
370
The Curse of the Amulet
leimatthew05
1
9.2k
We Are The Robots
honzajavorek
0
180
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
220
Embracing the Ebb and Flow
colly
88
5k
Deep Space Network (abreviated)
tonyrice
0
78
Transcript
Building web apps with Express Andy Appleton @appltn http://appleton.me
Express is a simple web application framework http://expressjs.com/
...built on Connect, the middleware framework http://www.senchalabs.org/connect/
Connect provides a bunch of handy utilities for dealing with
HTTP requests
var app = connect() .use(connect.logger('dev')) .use(connect.static('public')) .use(function(req, res){ res.end('hello world\n');
}) .listen(3000);
But anyway, Express
$ npm install -g express Install express globally
$ npm install -g express Init a new express app
in ./awesome-demo $ express awesome-demo
$ npm install -g express Install the app’s dependencies with
npm $ express awesome-demo $ cd awesome-demo && npm install
$ npm install -g express Run it! $ express awesome-demo
$ cd awesome-demo && npm install $ node app.js >> Express server listening on port 3000
None
None
var express = require('express'); ... var app = express();
// Get & set an app property app.set('name', 'value'); //
Use a middleware function app.use(myMiddlewareFunction()); // Respond to an HTTP request app.get('/path', callbackFn); app.post('/path', callbackFn); app.put('/path', callbackFn); // ...etc
Routing
app.get('/', routes.index); app.get('/users', routes.users.index); app.get('/users/:id', routes.users.show); app.post('/users/:id', routes.users.create); app.put('/users/:id', routes.users.update);
Handling a route // /users routes.index = function(req, res) {
res.send('Hello Bath'); }; // /users/:id routes.users.show = function(req, res) { var userId = req.params.id; res.send('Your userId is ' + userId); };
Rendering HTML templates
Rendering HTML templates routes.index = function(req, res) { res.render('index'); };
routes.users.show = function(req, res) { var userId = req.params.id; res.render('users/show', { id: userId }); };
doctype 5 html head ... body block content extends layout
block content h1= title p Welcome to #{title} ./views/layout.jade ./views/index.jade
"dependencies": { ... "hbs": "*" } ./package.json $ npm install
./app.js app.configure(function(){ ... app.set('view engine', 'hbs'); ... }); app.configure(function(){ ... app.set('view engine', 'jade'); ... });
<!DOCTYPE html> <html> <head>...</head> <body> {{{body}}} </body> </html> ./views/layout.hbs ./views/index.hbs
<h1>{{title}}</h1> <p>Welcome to {{title}}</p>
routes.index = function(req, res) { res.render('index'); }; routes.users.show = function(req,
res) { var userId = req.params.id; res.render('users/show', { id: userId }); };
Sessions
// must come before router app.use(express.cookieParser('secret')); app.use(express.session()); app.use(app.router); Session support
is middleware
routes.users.show = function(req, res) { req.session.id || (req.session.id = 1);
res.render('users/show', { id: req.session.id }); };
Andy Appleton @appltn http://appleton.me