Skip to content

Commit 6a73cd2

Browse files
committed
Upgrade to express 4
1 parent c585e6c commit 6a73cd2

5 files changed

Lines changed: 42 additions & 26 deletions

File tree

lib/core/mount.js

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,15 @@
4949
var _ = require('underscore'),
5050
express = require('express'),
5151
path = require('path'),
52-
utils = require('keystone-utils');
52+
utils = require('keystone-utils'),
53+
favicon = require('serve-favicon'),
54+
morgan = require('morgan'),
55+
methodOverride = require('method-override'),
56+
expressSession = require('express-session'),
57+
multer = require('multer'),
58+
bodyParser = require('body-parser'),
59+
cookieParser = require('cookie-parser'),
60+
compression = require('compression');
5361

5462
var dashes = '\n------------------------------------------------\n';
5563

@@ -97,7 +105,7 @@ function mount(mountPath, parentApp, events) {
97105
sessionOptions.key = 'keystone.sid';
98106
}
99107

100-
sessionOptions.cookieParser = express.cookieParser(this.get('cookie secret'));
108+
sessionOptions.cookieParser = cookieParser(this.get('cookie secret'));
101109

102110
var sessionStore = this.get('session store');
103111

@@ -242,11 +250,11 @@ function mount(mountPath, parentApp, events) {
242250
// Serve static assets
243251

244252
if (this.get('compress')) {
245-
app.use(express.compress());
253+
app.use(compression());
246254
}
247255

248256
if (this.get('favico')) {
249-
app.use(express.favicon(this.getPath('favico')));
257+
app.use(favicon(this.getPath('favico')));
250258
}
251259

252260
if (this.get('less')) {
@@ -299,17 +307,18 @@ function mount(mountPath, parentApp, events) {
299307
// Handle dynamic requests
300308

301309
if (this.get('logger')) {
302-
app.use(express.logger(this.get('logger')));
310+
app.use(morgan(this.get('logger')));
303311
}
304312

305313
if (this.get('file limit')) {
306314
app.use(express.limit(this.get('file limit')));
307315
}
308316

309-
app.use(express.bodyParser());
310-
app.use(express.methodOverride());
317+
app.use(bodyParser());
318+
app.use(methodOverride());
311319
app.use(sessionOptions.cookieParser);
312-
app.use(express.session(sessionOptions));
320+
app.use(expressSession(sessionOptions));
321+
app.use(multer());
313322
app.use(require('connect-flash')());
314323

315324
if (this.get('session') === true) {
@@ -357,10 +366,6 @@ function mount(mountPath, parentApp, events) {
357366
}
358367
});
359368

360-
// Route requests
361-
362-
app.use(app.router);
363-
364369
// Headless mode means don't bind the Keystone routes
365370

366371
if (!this.get('headless')) {

lib/core/start.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@
4343
* @api public
4444
*/
4545

46-
var fs = require('fs'),
47-
http = require('http'),
48-
https = require('https');
46+
var fs = require('fs');
4947

5048
var dashes = '\n------------------------------------------------\n';
5149

@@ -99,13 +97,13 @@ function start(events) {
9997
// http://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback
10098
// and for history, see https://github.com/JedWatson/keystone/issues/154
10199

102-
keystone.httpServer = http.createServer(app);
103-
events.onHttpServerCreated && events.onHttpServerCreated();
104-
105100
var host = keystone.get('host'),
106101
port = keystone.get('port'),
107102
listen = keystone.get('listen'),
108103
ssl = keystone.get('ssl');
104+
105+
keystone.httpServer = app.listen(port || 3000);
106+
events.onHttpServerCreated && events.onHttpServerCreated();
109107

110108
// start the http server unless we're in ssl-only mode
111109

package.json

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"connect-flash": "~0.1.1",
1616
"csv": "~0.3.7",
1717
"embedly": "~1.0.2",
18-
"express": "~3.3.8",
18+
"express": "~4.8.5",
1919
"jade": "~1.5.0",
2020
"keystone-utils": "~0.1.10",
2121
"knox": "~0.9.0",
@@ -28,7 +28,16 @@
2828
"queryfilter": "~0.0.4",
2929
"range_check": "~0.0.4",
3030
"semver": "~3.0.1",
31-
"underscore": "~1.6.0"
31+
"underscore": "~1.6.0",
32+
"serve-favicon": "~2.0.1",
33+
"morgan": "~1.2.3",
34+
"method-override": "~2.1.3",
35+
"body-parser": "~1.6.5",
36+
"errorhandler": "~1.1.1",
37+
"express-session": "~1.7.6",
38+
"multer": "~0.1.4",
39+
"cookie-parser": "~1.3.2",
40+
"compression": "~1.0.11"
3241
},
3342
"devDependencies": {
3443
"browserify": "^5.9.1",

test/helpers/getExpressApp.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
var keystone = require('../../index.js'),
2-
mongoose = require('./getMongooseConnection.js');
2+
mongoose = require('./getMongooseConnection.js'),
3+
methodOverride = require('method-override'),
4+
bodyParser = require('body-parser');
35

46
function getExpressApp() {
57
var app;
@@ -8,10 +10,10 @@ function getExpressApp() {
810
keystone.connect(mongoose);
911
app = keystone.express();
1012

11-
app.use(keystone.express.bodyParser());
12-
app.use(keystone.express.methodOverride());
13+
app.use(bodyParser());
14+
app.use(methodOverride());
1315

1416
return app;
1517
}
1618

17-
module.exports = getExpressApp;
19+
module.exports = getExpressApp;

test/lib/view_test.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
var demand = require('must'),
22
request = require('supertest'),
3+
methodOverride = require('method-override'),
4+
bodyParser = require('body-parser'),
35
keystone = require('../../index.js');
46

57
var getApp = function() {
68
var app = keystone.express();
7-
app.use(keystone.express.bodyParser());
8-
app.use(keystone.express.methodOverride());
9+
app.use(bodyParser());
10+
app.use(methodOverride());
911
return app;
1012
}
1113

0 commit comments

Comments
 (0)