Skip to content

Commit 62e4cb6

Browse files
committed
Merge branch 'pr/130'
Conflicts: templates/express/config/express.js
2 parents 928cefb + 39067d5 commit 62e4cb6

File tree

4 files changed

+77
-63
lines changed

4 files changed

+77
-63
lines changed

templates/common/_package.json

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,17 @@
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) { %>,
8-
"connect-mongo": "~0.4.0",
15+
"connect-mongo": "mrzepinski/connect-mongo#2135988",
916
"passport": "~0.2.0",
1017
"passport-local": "~0.1.6"<% } %><% if (jade) { %>,
1118
"jade": "~1.2.0"<% } %><% if (!jade) { %>,
Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,26 @@
11
'use strict';
22

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

917
/**
1018
* Express configuration
1119
*/
1220
module.exports = function(app) {
13-
app.configure('development', function(){
21+
var env = app.get('env');
22+
23+
if ('development' === env) {
1424
app.use(require('connect-livereload')());
1525

1626
// Disable caching of scripts for easier testing
@@ -26,46 +36,42 @@ module.exports = function(app) {
2636
app.use(express.static(path.join(config.root, '.tmp')));
2737
app.use(express.static(path.join(config.root, 'app')));
2838
app.set('views', config.root + '/app/views');
29-
});
39+
}
3040

31-
app.configure('production', function(){
32-
app.use(express.compress());
33-
app.use(express.favicon(path.join(config.root, 'public', 'favicon.ico')));
41+
if ('production' === env) {
42+
app.use(compression());
43+
app.use(favicon(path.join(config.root, 'public', 'favicon.ico')));
3444
app.use(express.static(path.join(config.root, 'public')));
3545
app.set('views', config.root + '/views');
36-
});
46+
}
3747

38-
app.configure(function(){<% if (!jade) { %>
39-
app.engine('html', require('ejs').renderFile);
40-
app.set('view engine', 'html');<% } %><% if (jade) { %>
41-
app.set('view engine', 'jade');<% } %>
42-
app.use(express.logger('dev'));
43-
app.use(express.json());
44-
app.use(express.urlencoded());
45-
app.use(express.methodOverride());<% if(mongoPassportUser) { %>
46-
app.use(express.cookieParser());
48+
<% if (!jade) { %>
49+
app.engine('html', require('ejs').renderFile);
50+
app.set('view engine', 'html');<% } %><% if (jade) { %>
51+
app.set('view engine', 'jade');<% } %>
52+
app.use(morgan('dev'));
53+
app.use(bodyParser());
54+
app.use(methodOverride());<% if(mongoPassportUser) { %>
55+
app.use(cookieParser());
4756

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

59-
//use passport session
60-
app.use(passport.initialize());
61-
app.use(passport.session());
62-
<% } %>
63-
// Router (only error handlers should come after this)
64-
app.use(app.router);
65-
});
68+
// Use passport session
69+
app.use(passport.initialize());
70+
app.use(passport.session());
71+
<% } %>
6672

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

templates/express/routes.js

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,39 @@
33
var api = require('./controllers/api'),
44
index = require('./controllers')<% if(mongoPassportUser) { %>,
55
users = require('./controllers/users'),
6-
session = require('./controllers/session');
7-
8-
var middleware = require('./middleware')<% } %>;
6+
session = require('./controllers/session'),
7+
middleware = require('./middleware')<% } %>;
98

109
/**
1110
* Application routes
1211
*/
1312
module.exports = function(app) {
1413

1514
// Server API Routes
16-
app.get('/api/awesomeThings', api.awesomeThings);
15+
app.route('/api/awesomeThings')
16+
.get(api.awesomeThings);
1717
<% 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);
18+
app.route('/api/users')
19+
.post(users.create)
20+
.put(users.changePassword);
21+
app.route('/api/users/me')
22+
.get(users.me);
23+
app.route('/api/users/:id')
24+
.get(users.show);
2225

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

2630
// All undefined api routes should return a 404
27-
app.get('/api/*', function(req, res) {
28-
res.send(404);
29-
});
30-
31+
app.route('/api/*')
32+
.get(function(req, res) {
33+
res.send(404);
34+
});
35+
3136
// 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);
37+
app.route('/partials/*')
38+
.get(index.partials);
39+
app.route('/*')
40+
.get(<% if(mongoPassportUser) { %> middleware.setUserCookie,<% } %> index.index);
3441
};

templates/express/server.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@ var express = require('express')<% if (mongo) { %>,
1212
// Set default node environment to development
1313
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
1414

15-
// Application Config
1615
var config = require('./lib/config/config');<% if (mongo) { %>
17-
18-
// Connect to database
1916
var db = mongoose.connect(config.mongo.uri, config.mongo.options);
2017

2118
// Bootstrap models
@@ -28,16 +25,13 @@ fs.readdirSync(modelsPath).forEach(function (file) {
2825

2926
// Populate empty DB with sample data
3027
require('./lib/config/dummydata');<% } %><% if(mongoPassportUser) { %>
31-
28+
3229
// Passport Configuration
3330
var passport = require('./lib/config/passport');<% } %>
3431

32+
// Setup Express
3533
var app = express();
36-
37-
// Express settings
3834
require('./lib/config/express')(app);
39-
40-
// Routing
4135
require('./lib/routes')(app);
4236

4337
// Start server

0 commit comments

Comments
 (0)