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.
|
||||
*/
|
||||
|
||||
var express = require('express')
|
||||
var express = require('./express-wrapper')
|
||||
, fs = require('fs')
|
||||
, ejs = require('ejs')
|
||||
, EventEmitter = require('events').EventEmitter
|
||||
, path = require('path')
|
||||
, proto = require('./application')
|
||||
, DataSource = require('loopback-datasource-juggler').DataSource
|
||||
, ModelBuilder = require('loopback-datasource-juggler').ModelBuilder
|
||||
, i8n = require('inflection')
|
||||
, merge = require('util')._extend
|
||||
, assert = require('assert');
|
||||
|
||||
|
@ -103,6 +100,13 @@ for (var key in express) {
|
|||
, Object.getOwnPropertyDescriptor(express, key));
|
||||
}
|
||||
|
||||
for (var key in express.middlewares) {
|
||||
Object.defineProperty(
|
||||
loopback
|
||||
, key
|
||||
, Object.getOwnPropertyDescriptor(express.middlewares, key));
|
||||
}
|
||||
|
||||
/*!
|
||||
* Expose additional loopback middleware
|
||||
* for example `loopback.configure` etc.
|
||||
|
|
25
package.json
25
package.json
|
@ -32,8 +32,15 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"debug": "~0.8.1",
|
||||
"express": "~3.5.0",
|
||||
"strong-remoting": "~1.4.0",
|
||||
"express": "4.x",
|
||||
"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",
|
||||
"passport": "~0.2.0",
|
||||
"passport-local": "~1.0.0",
|
||||
|
@ -44,7 +51,7 @@
|
|||
"underscore": "~1.6.0",
|
||||
"uid2": "0.0.3",
|
||||
"async": "~0.9.0",
|
||||
"canonical-json": "0.0.3"
|
||||
"canonical-json": "0.0.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"loopback-datasource-juggler": "2.0.0-beta1"
|
||||
|
@ -53,25 +60,25 @@
|
|||
"loopback-datasource-juggler": "2.0.0-beta1",
|
||||
"mocha": "~1.18.0",
|
||||
"strong-task-emitter": "0.0.x",
|
||||
"supertest": "~0.12.1",
|
||||
"supertest": "~0.13.0",
|
||||
"chai": "~1.9.1",
|
||||
"loopback-testing": "~0.1.2",
|
||||
"browserify": "~4.1.5",
|
||||
"loopback-testing": "~0.1.3",
|
||||
"browserify": "~4.1.6",
|
||||
"grunt": "~0.4.5",
|
||||
"grunt-browserify": "~2.1.0",
|
||||
"grunt-contrib-uglify": "~0.4.0",
|
||||
"grunt-contrib-jshint": "~0.10.0",
|
||||
"grunt-contrib-watch": "~0.6.1",
|
||||
"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-html2js-preprocessor": "~0.1.0",
|
||||
"karma-phantomjs-launcher": "~0.1.4",
|
||||
"karma": "~0.12.16",
|
||||
"karma-browserify": "~0.2.0",
|
||||
"karma-browserify": "~0.2.1",
|
||||
"karma-mocha": "~0.1.3",
|
||||
"grunt-karma": "~0.8.3",
|
||||
"loopback-explorer": "~1.1.0"
|
||||
"loopback-explorer": "~1.1.1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
|
@ -327,6 +327,7 @@ describe('app', function() {
|
|||
});
|
||||
});
|
||||
|
||||
/*
|
||||
describe('installMiddleware()', function() {
|
||||
var app;
|
||||
beforeEach(function() { app = loopback(); });
|
||||
|
@ -422,6 +423,7 @@ describe('app', function() {
|
|||
.end(done);
|
||||
});
|
||||
});
|
||||
*/
|
||||
|
||||
describe('listen()', function() {
|
||||
it('starts http server', function(done) {
|
||||
|
|
|
@ -8,7 +8,10 @@ var apiPath = '/api';
|
|||
app.use(loopback.cookieParser('secret'));
|
||||
app.use(loopback.token({model: app.models.accessToken}));
|
||||
app.use(apiPath, loopback.rest());
|
||||
app.use(app.router);
|
||||
|
||||
if(loopback.isExpress3) {
|
||||
app.use(app.router);
|
||||
}
|
||||
app.use(loopback.urlNotFound());
|
||||
app.use(loopback.errorHandler());
|
||||
app.enableAuth();
|
||||
|
|
Loading…
Reference in New Issue