Upgrade to Express 4.x
This commit is contained in:
parent
5aa8b369b4
commit
49380e490f
Binary file not shown.
After Width: | Height: | Size: 894 B |
|
@ -0,0 +1,60 @@
|
||||||
|
var express = require('express');
|
||||||
|
var expressVer = require('express/package.json').version;
|
||||||
|
var path = require('path');
|
||||||
|
|
||||||
|
express.version = expressVer;
|
||||||
|
var middlewares = express.middlewares = {};
|
||||||
|
|
||||||
|
function safeRequire(m) {
|
||||||
|
try {
|
||||||
|
return require(m);
|
||||||
|
} catch (err) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function createMiddlewareNotInstalled(memberName, moduleName) {
|
||||||
|
return function() {
|
||||||
|
throw new Error('The middleware loopback.' + memberName + ' is not installed.\n' +
|
||||||
|
'Please run `npm install ' + moduleName + '` to fix the problem.');
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (expressVer.indexOf('4.') === 0) {
|
||||||
|
var middlewareModules = {
|
||||||
|
"compress": "compression",
|
||||||
|
"timeout": "connect-timeout",
|
||||||
|
"cookieParser": "cookie-parser",
|
||||||
|
"cookieSession": "cookie-session",
|
||||||
|
"csrf": "csurf",
|
||||||
|
"errorHandler": "errorhandler",
|
||||||
|
"session": "express-session",
|
||||||
|
"methodOverride": "method-override",
|
||||||
|
"logger": "morgan",
|
||||||
|
"responseTime": "response-time",
|
||||||
|
"favicon": "serve-favicon",
|
||||||
|
"directory": "serve-index",
|
||||||
|
// "static": "serve-static",
|
||||||
|
"vhost": "vhost"
|
||||||
|
};
|
||||||
|
|
||||||
|
middlewares.bodyParser = safeRequire('body-parser');
|
||||||
|
middlewares.json = middlewares.bodyParser && middlewares.bodyParser.json;
|
||||||
|
middlewares.urlencoded = middlewares.bodyParser && middlewares.bodyParser.urlencoded;
|
||||||
|
|
||||||
|
for (var m in middlewareModules) {
|
||||||
|
var moduleName = middlewareModules[m];
|
||||||
|
middlewares[m] = safeRequire(moduleName) || createMiddlewareNotInstalled(m, moduleName);
|
||||||
|
}
|
||||||
|
|
||||||
|
// serve-favicon requires a path
|
||||||
|
var favicon = middlewares.favicon;
|
||||||
|
middlewares.favicon = function(icon, options) {
|
||||||
|
icon = icon || path.join(__dirname, '../favicon.ico');
|
||||||
|
return favicon(icon, options);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = express;
|
||||||
|
|
||||||
|
|
|
@ -2,15 +2,12 @@
|
||||||
* Module dependencies.
|
* Module dependencies.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var express = require('express')
|
var express = require('./express-wrapper')
|
||||||
, fs = require('fs')
|
, fs = require('fs')
|
||||||
, ejs = require('ejs')
|
, ejs = require('ejs')
|
||||||
, EventEmitter = require('events').EventEmitter
|
|
||||||
, path = require('path')
|
, path = require('path')
|
||||||
, proto = require('./application')
|
, proto = require('./application')
|
||||||
, DataSource = require('loopback-datasource-juggler').DataSource
|
, DataSource = require('loopback-datasource-juggler').DataSource
|
||||||
, ModelBuilder = require('loopback-datasource-juggler').ModelBuilder
|
|
||||||
, i8n = require('inflection')
|
|
||||||
, merge = require('util')._extend
|
, merge = require('util')._extend
|
||||||
, assert = require('assert');
|
, assert = require('assert');
|
||||||
|
|
||||||
|
@ -103,6 +100,13 @@ for (var key in express) {
|
||||||
, Object.getOwnPropertyDescriptor(express, key));
|
, Object.getOwnPropertyDescriptor(express, key));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (var key in express.middlewares) {
|
||||||
|
Object.defineProperty(
|
||||||
|
loopback
|
||||||
|
, key
|
||||||
|
, Object.getOwnPropertyDescriptor(express.middlewares, key));
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Expose additional loopback middleware
|
* Expose additional loopback middleware
|
||||||
* for example `loopback.configure` etc.
|
* for example `loopback.configure` etc.
|
||||||
|
|
25
package.json
25
package.json
|
@ -32,8 +32,15 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": "~0.8.1",
|
"debug": "~0.8.1",
|
||||||
"express": "~3.5.0",
|
"express": "4.x",
|
||||||
"strong-remoting": "~1.4.0",
|
"body-parser": "~1.2.2",
|
||||||
|
"express-session": "~1.2.1",
|
||||||
|
"serve-favicon": "~2.0.0",
|
||||||
|
"method-override": "~1.0.2",
|
||||||
|
"cookie-parser": "~1.1.0",
|
||||||
|
"morgan": "~1.1.1",
|
||||||
|
"errorhandler": "~1.0.1",
|
||||||
|
"strong-remoting": "~1.4.1",
|
||||||
"inflection": "~1.3.5",
|
"inflection": "~1.3.5",
|
||||||
"passport": "~0.2.0",
|
"passport": "~0.2.0",
|
||||||
"passport-local": "~1.0.0",
|
"passport-local": "~1.0.0",
|
||||||
|
@ -44,7 +51,7 @@
|
||||||
"underscore": "~1.6.0",
|
"underscore": "~1.6.0",
|
||||||
"uid2": "0.0.3",
|
"uid2": "0.0.3",
|
||||||
"async": "~0.9.0",
|
"async": "~0.9.0",
|
||||||
"canonical-json": "0.0.3"
|
"canonical-json": "0.0.4"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"loopback-datasource-juggler": "2.0.0-beta1"
|
"loopback-datasource-juggler": "2.0.0-beta1"
|
||||||
|
@ -53,25 +60,25 @@
|
||||||
"loopback-datasource-juggler": "2.0.0-beta1",
|
"loopback-datasource-juggler": "2.0.0-beta1",
|
||||||
"mocha": "~1.18.0",
|
"mocha": "~1.18.0",
|
||||||
"strong-task-emitter": "0.0.x",
|
"strong-task-emitter": "0.0.x",
|
||||||
"supertest": "~0.12.1",
|
"supertest": "~0.13.0",
|
||||||
"chai": "~1.9.1",
|
"chai": "~1.9.1",
|
||||||
"loopback-testing": "~0.1.2",
|
"loopback-testing": "~0.1.3",
|
||||||
"browserify": "~4.1.5",
|
"browserify": "~4.1.6",
|
||||||
"grunt": "~0.4.5",
|
"grunt": "~0.4.5",
|
||||||
"grunt-browserify": "~2.1.0",
|
"grunt-browserify": "~2.1.0",
|
||||||
"grunt-contrib-uglify": "~0.4.0",
|
"grunt-contrib-uglify": "~0.4.0",
|
||||||
"grunt-contrib-jshint": "~0.10.0",
|
"grunt-contrib-jshint": "~0.10.0",
|
||||||
"grunt-contrib-watch": "~0.6.1",
|
"grunt-contrib-watch": "~0.6.1",
|
||||||
"karma-script-launcher": "~0.1.0",
|
"karma-script-launcher": "~0.1.0",
|
||||||
"karma-chrome-launcher": "~0.1.3",
|
"karma-chrome-launcher": "~0.1.4",
|
||||||
"karma-firefox-launcher": "~0.1.3",
|
"karma-firefox-launcher": "~0.1.3",
|
||||||
"karma-html2js-preprocessor": "~0.1.0",
|
"karma-html2js-preprocessor": "~0.1.0",
|
||||||
"karma-phantomjs-launcher": "~0.1.4",
|
"karma-phantomjs-launcher": "~0.1.4",
|
||||||
"karma": "~0.12.16",
|
"karma": "~0.12.16",
|
||||||
"karma-browserify": "~0.2.0",
|
"karma-browserify": "~0.2.1",
|
||||||
"karma-mocha": "~0.1.3",
|
"karma-mocha": "~0.1.3",
|
||||||
"grunt-karma": "~0.8.3",
|
"grunt-karma": "~0.8.3",
|
||||||
"loopback-explorer": "~1.1.0"
|
"loopback-explorer": "~1.1.1"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|
|
@ -327,6 +327,7 @@ describe('app', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
describe('installMiddleware()', function() {
|
describe('installMiddleware()', function() {
|
||||||
var app;
|
var app;
|
||||||
beforeEach(function() { app = loopback(); });
|
beforeEach(function() { app = loopback(); });
|
||||||
|
@ -422,6 +423,7 @@ describe('app', function() {
|
||||||
.end(done);
|
.end(done);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
describe('listen()', function() {
|
describe('listen()', function() {
|
||||||
it('starts http server', function(done) {
|
it('starts http server', function(done) {
|
||||||
|
|
|
@ -8,7 +8,10 @@ var apiPath = '/api';
|
||||||
app.use(loopback.cookieParser('secret'));
|
app.use(loopback.cookieParser('secret'));
|
||||||
app.use(loopback.token({model: app.models.accessToken}));
|
app.use(loopback.token({model: app.models.accessToken}));
|
||||||
app.use(apiPath, loopback.rest());
|
app.use(apiPath, loopback.rest());
|
||||||
|
|
||||||
|
if(loopback.isExpress3) {
|
||||||
app.use(app.router);
|
app.use(app.router);
|
||||||
|
}
|
||||||
app.use(loopback.urlNotFound());
|
app.use(loopback.urlNotFound());
|
||||||
app.use(loopback.errorHandler());
|
app.use(loopback.errorHandler());
|
||||||
app.enableAuth();
|
app.enableAuth();
|
||||||
|
|
Loading…
Reference in New Issue