Skip to content

Commit ee3a625

Browse files
committed
Express v4.x
1 parent 480515f commit ee3a625

File tree

3 files changed

+77
-57
lines changed

3 files changed

+77
-57
lines changed

Diff for: templates/common/_package.json

+8-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,14 @@
22
"name": "<%= _.slugify(appname) %>",
33
"version": "0.0.0",
44
"dependencies": {
5-
"express": "~3.4.3",
5+
"express": "~4.0.0",
6+
"morgan": "~1.0.0",
7+
"body-parser": "~1.0.0",
8+
"method-override": "~1.0.0",
9+
"static-favicon": "~1.0.1",
10+
"cookie-parser": "~1.0.1",
11+
"express-session": "~1.0.2",
12+
"errorhandler": "~1.0.0",
613
"lodash": "~2.4.1"<% if (mongo) { %>,
714
"mongoose": "~3.8.8"<% } %><% if (mongoPassportUser) { %>,
815
"connect-mongo": "~0.4.0",

Diff for: templates/express/config/express.js

+48-43
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,75 @@
11
'use strict';
22

33
var express = require('express'),
4+
favicon = require('static-favicon'),
5+
morgan = require('morgan'),
6+
bodyParser = require('body-parser'),
7+
methodOverride = require('method-override'),
8+
cookieParser = require('cookie-parser'),
9+
session = require('express-session'),
10+
errorHandler = require('errorhandler'),
411
path = require('path'),
512
config = require('./config')<% if (mongoPassportUser) { %>,
613
passport = require('passport'),
7-
mongoStore = require('connect-mongo')(express)<% } %>;
14+
mongoStore = require('connect-mongo')(session)<% } %>;
815

916
/**
1017
* Express configuration
1118
*/
1219
module.exports = function(app) {
13-
app.configure('development', function(){
14-
app.use(require('connect-livereload')());
20+
var env = app.get('env');
1521

16-
// Disable caching of scripts for easier testing
17-
app.use(function noCache(req, res, next) {
18-
if (req.url.indexOf('/scripts/') === 0) {
19-
res.header('Cache-Control', 'no-cache, no-store, must-revalidate');
20-
res.header('Pragma', 'no-cache');
21-
res.header('Expires', 0);
22-
}
23-
next();
24-
});
22+
if ('development' === env) {
23+
app.use(require('connect-livereload')());
2524

26-
app.use(express.static(path.join(config.root, '.tmp')));
27-
app.use(express.static(path.join(config.root, 'app')));
28-
app.set('views', config.root + '/app/views');
29-
});
25+
// Disable caching of scripts for easier testing
26+
app.use(function noCache(req, res, next) {
27+
if (req.url.indexOf('/scripts/') === 0) {
28+
res.header('Cache-Control', 'no-cache, no-store, must-revalidate');
29+
res.header('Pragma', 'no-cache');
30+
res.header('Expires', 0);
31+
}
32+
next();
33+
});
3034

31-
app.configure('production', function(){
32-
app.use(express.favicon(path.join(config.root, 'public', 'favicon.ico')));
33-
app.use(express.static(path.join(config.root, 'public')));
34-
app.set('views', config.root + '/views');
35-
});
35+
app.use(express.static(path.join(config.root, '.tmp')));
36+
app.use(express.static(path.join(config.root, 'app')));
37+
app.set('views', config.root + '/app');
38+
}
3639

37-
app.configure(function(){<% if (!jade) { %>
40+
if ('production' === env) {
41+
app.use(favicon(path.join(config.root, 'public', 'favicon.ico')));
42+
app.use(express.static(path.join(config.root, 'public')));
43+
app.set('views', config.root + '/views');
44+
}
45+
46+
<% if (!jade) { %>
3847
app.engine('html', require('ejs').renderFile);
3948
app.set('view engine', 'html');<% } %><% if (jade) { %>
4049
app.set('view engine', 'jade');<% } %>
41-
app.use(express.logger('dev'));
42-
app.use(express.json());
43-
app.use(express.urlencoded());
44-
app.use(express.methodOverride());<% if(mongoPassportUser) { %>
45-
app.use(express.cookieParser());
50+
app.use(morgan('dev'));
51+
app.use(bodyParser());
52+
app.use(methodOverride());<% if(mongoPassportUser) { %>
53+
app.use(cookieParser());
4654

4755
// Persist sessions with mongoStore
48-
app.use(express.session({
49-
secret: 'angular-fullstack secret',
50-
store: new mongoStore({
51-
url: config.mongo.uri,
52-
collection: 'sessions'
53-
}, function () {
54-
console.log("db connection open");
55-
})
56+
app.use(session({
57+
secret: 'angular-fullstack secret',
58+
store: new mongoStore({
59+
url: config.mongo.uri,
60+
collection: 'sessions'
61+
}, function () {
62+
console.log('db connection open');
63+
})
5664
}));
5765

58-
//use passport session
66+
// Use passport session
5967
app.use(passport.initialize());
6068
app.use(passport.session());
6169
<% } %>
62-
// Router (only error handlers should come after this)
63-
app.use(app.router);
64-
});
6570

66-
// Error handler
67-
app.configure('development', function(){
68-
app.use(express.errorHandler());
69-
});
71+
// Error handler - has to be last
72+
if ('development' === app.get('env')) {
73+
app.use(errorHandler())
74+
}
7075
};

Diff for: templates/express/routes.js

+21-13
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,30 @@ var middleware = require('./middleware')<% } %>;
1313
module.exports = function(app) {
1414

1515
// Server API Routes
16-
app.get('/api/awesomeThings', api.awesomeThings);
16+
app.route('/api/awesomeThings')
17+
.get(api.awesomeThings);
1718
<% if(mongoPassportUser) { %>
18-
app.post('/api/users', users.create);
19-
app.put('/api/users', users.changePassword);
20-
app.get('/api/users/me', users.me);
21-
app.get('/api/users/:id', users.show);
19+
app.route('/api/users')
20+
.post(users.create),
21+
.put(users.changePassword);
22+
app.route('/api/users/me')
23+
.get(users.me);
24+
app.route('/api/users/:id')
25+
.get(users.show);
2226

23-
app.post('/api/session', session.login);
24-
app.del('/api/session', session.logout);<% } %>
27+
app.route('/api/session')
28+
.post(session.login),
29+
.delete(session.logout);<% } %>
2530

2631
// All undefined api routes should return a 404
27-
app.get('/api/*', function(req, res) {
28-
res.send(404);
29-
});
30-
32+
app.route('/api/*')
33+
.get(function(req, res) {
34+
res.send(404);
35+
});
36+
3137
// All other routes to use Angular routing in app/scripts/app.js
32-
app.get('/partials/*', index.partials);
33-
app.get('/*',<% if(mongoPassportUser) { %> middleware.setUserCookie,<% } %> index.index);
38+
app.route('/partials/*')
39+
.get(index.partials);
40+
app.route('/*')
41+
.get(<% if(mongoPassportUser) { %> middleware.setUserCookie,<% } %> index.index);
3442
};

0 commit comments

Comments
 (0)