Intro to Express
#HarvestJS
Special Thanks to:


Express Request Handling
- Executed in order
- Callbacks can do 1 of 2 things
- Handle the response
- Pass control on
This is the basis for middleware
Middleware
-
Just functions that handle requests
- Handlers are executed in order
- Handlers can be "stacked"
Route Callback
function(req, res) { //code }
Middleware Callback
function(req, res, next) { //code }
Control is passed along using next();
Route Callback
app.get('/route', function(req, res) {
//code
});
Middleware Callback
app.use(function(req, res, next) {
//code
});
Every request goes through the middlewareExamples
-
Authentication
- Authorization
- Static files
-
Body parsing (forms)
- Cookie parsing
Authentication Example
app.use(function(req, res, next) {if ( ! loggedIn ) {res.end('You are not authorized');} else {next();}});
- Show message if not logged in
- Send request on if they are
Middleware
Can also modify the request
app.use(function(req, res, next) {req.user.name = 'John Lithgow';req.user.career = 'actor';req.user.age = '67';next();});
-
Will append user to the request object
- req.user will be available in subsequent handlers
Order Matters
app.use(app.router);app.use(express.static(path.join(__dirname, 'public')));app.use(function(req, res, next) {res.end(404, 'Not found');});app.get('/', function(req, res) {res.send('Hello World');});
- app.router is used for route handling
- Routes are injected before the 404 Middleware
Express Middleware
By Joe Fleming
Express Middleware
- 2,662