Skip to content

Commit 44a325b

Browse files
author
Azat Mardanov
committed
express 4 and other fixes 🌻
1 parent 8289c6d commit 44a325b

File tree

3 files changed

+43
-28
lines changed

3 files changed

+43
-28
lines changed

ch6/password/app.js

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,54 +10,59 @@ var express = require('express'),
1010
users: db.collection('users')
1111
};
1212

13+
// Express.js Middleware
14+
var session = require('express-session'),
15+
logger = require('morgan'),
16+
errorHandler = require('errorhandler'),
17+
cookieParser = require('cookie-parser'),
18+
bodyParser = require('body-parser'),
19+
methodOverride = require('method-override');
1320

1421
var app = express();
15-
app.locals.appTitle = "blog-express";
22+
app.locals.appTitle = 'blog-express';
1623

24+
// Expose collections to request handlers
1725
app.use(function(req, res, next) {
18-
if (!collections.articles || ! collections.users) return next(new Error("No collections."))
26+
if (!collections.articles || ! collections.users) return next(new Error('No collections.'))
1927
req.collections = collections;
2028
return next();
2129
});
2230

23-
24-
25-
// all environments
31+
// Express.js configurations
2632
app.set('port', process.env.PORT || 3000);
2733
app.set('views', path.join(__dirname, 'views'));
2834
app.set('view engine', 'jade');
29-
app.use(express.favicon());
30-
app.use(express.logger('dev'));
31-
app.use(express.json());
32-
app.use(express.cookieParser('3CCC4ACD-6ED1-4844-9217-82131BDCB239'));
33-
app.use(express.session({secret: '2C44774A-D649-4D44-9535-46E296EF984F'}))
34-
app.use(express.urlencoded());
35-
app.use(express.methodOverride());
35+
36+
// Express.js middleware configuration
37+
app.use(logger('dev'));
38+
app.use(bodyParser.json());
39+
app.use(bodyParser.urlencoded());
40+
app.use(cookieParser('3CCC4ACD-6ED1-4844-9217-82131BDCB239'));
41+
app.use(session({secret: '2C44774A-D649-4D44-9535-46E296EF984F'}))
42+
app.use(methodOverride());
3643
app.use(require('stylus').middleware(__dirname + '/public'));
3744
app.use(express.static(path.join(__dirname, 'public')));
3845

46+
// Authentication middleware
3947
app.use(function(req, res, next) {
4048
if (req.session && req.session.admin)
4149
res.locals.admin = true;
4250
next();
4351
});
4452

45-
//authorization
53+
// Authorization Middleware
4654
var authorize = function(req, res, next) {
4755
if (req.session && req.session.admin)
4856
return next();
4957
else
5058
return res.send(401);
5159
};
5260

53-
// development only
5461
if ('development' == app.get('env')) {
55-
app.use(express.errorHandler());
62+
app.use(errorHandler());
5663
}
5764

58-
59-
app.use(app.router);
60-
//PAGES&ROUTES
65+
// PAGES&ROUTES
6166
app.get('/', routes.index);
6267
app.get('/login', routes.user.login);
6368
app.post('/login', routes.user.authenticate);
@@ -67,7 +72,7 @@ app.get('/post', authorize, routes.article.post);
6772
app.post('/post', authorize, routes.article.postArticle);
6873
app.get('/articles/:slug', routes.article.show);
6974

70-
//REST API ROUTES
75+
// REST API ROUTES
7176
app.all('/api', authorize);
7277
app.get('/api/articles', routes.article.list)
7378
app.post('/api/articles', routes.article.add);
@@ -76,6 +81,7 @@ app.del('/api/articles/:id', routes.article.del);
7681

7782

7883

84+
7985
app.all('*', function(req, res) {
8086
res.send(404);
8187
})

ch6/password/package.json

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,21 @@
77
"test": "mocha test"
88
},
99
"dependencies": {
10-
"express": "3.4.5",
11-
"jade": "*",
12-
"mongoskin": "~0.6.1",
13-
"stylus": "~0.40.3",
14-
"mocha": "~1.16.2",
15-
"superagent": "~0.15.7",
16-
"expect.js": "~0.2.0"
10+
"express": "4.1.2",
11+
"jade": "1.3.1",
12+
"stylus": "0.44.0",
13+
"mongoskin": "1.4.1",
14+
"cookie-parser": "1.0.1",
15+
"body-parser": "1.0.2",
16+
"method-override": "1.0.0",
17+
"serve-favicon": "2.0.0",
18+
"express-session": "1.0.4",
19+
"morgan": "1.0.1",
20+
"errorhandler": "1.0.1"
21+
},
22+
"devDependencies": {
23+
"mocha": "1.16.2",
24+
"superagent": "0.15.7",
25+
"expect.js": "0.2.0"
1726
}
18-
}
27+
}

ch6/password/routes/user.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ exports.login = function(req, res, next) {
2121
*/
2222

2323
exports.logout = function(req, res, next) {
24-
req.session = null;
24+
req.session.destroy();
2525
res.redirect('/');
2626
};
2727

0 commit comments

Comments
 (0)