Skip to content

Commit

Permalink
remove last pieces of connect dependency
Browse files Browse the repository at this point in the history
- copy over patch.js to shim ServerResponse
- bundle `static` middleware
  • Loading branch information
defunctzombie committed Feb 22, 2014
1 parent 6a7363e commit 1396e08
Show file tree
Hide file tree
Showing 30 changed files with 321 additions and 156 deletions.
1 change: 1 addition & 0 deletions History.md
Expand Up @@ -8,6 +8,7 @@
- `app.router` - is removed - `app.router` - is removed
- `req.accepted*` - use `req.accepts*()` instead - `req.accepted*` - use `req.accepts*()` instead
- `res.location` - relative URL resolution is removed - `res.location` - relative URL resolution is removed
- all bundled middleware except `static`
* change: * change:
- `app.route` -> `app.mountpath` when mounting an express app in another express app - `app.route` -> `app.mountpath` when mounting an express app in another express app
- `json spaces` no longer enabled by default in development - `json spaces` no longer enabled by default in development
Expand Down
11 changes: 7 additions & 4 deletions examples/auth/app.js
Expand Up @@ -3,7 +3,10 @@
*/ */


var express = require('../..') var express = require('../..')
, hash = require('./pass').hash; , hash = require('./pass').hash
, bodyParser = require('body-parser')
, cookieParser = require('cookie-parser')
, session = require('express-session')


var app = module.exports = express(); var app = module.exports = express();


Expand All @@ -14,9 +17,9 @@ app.set('views', __dirname + '/views');


// middleware // middleware


app.use(express.bodyParser()); app.use(bodyParser());
app.use(express.cookieParser('shhhh, very secret')); app.use(cookieParser('shhhh, very secret'));
app.use(express.session()); app.use(session());


// Session-persisted message middleware // Session-persisted message middleware


Expand Down
5 changes: 3 additions & 2 deletions examples/big-view/index.js
@@ -1,5 +1,6 @@


var express = require('../..') var express = require('../..')
, logger = require('morgan')
, app = express(); , app = express();


app.set('views', __dirname); app.set('views', __dirname);
Expand All @@ -14,11 +15,11 @@ while (n--) {
pets.push({ name: 'Jane', age: 6, species: 'ferret' }); pets.push({ name: 'Jane', age: 6, species: 'ferret' });
} }


app.use(express.logger('dev')); app.use(logger('dev'));


app.get('/', function(req, res){ app.get('/', function(req, res){
res.render('pets', { pets: pets }); res.render('pets', { pets: pets });
}); });


app.listen(3000); app.listen(3000);
console.log('Express listening on port 3000'); console.log('Express listening on port 3000');
10 changes: 6 additions & 4 deletions examples/cookie-sessions/index.js
Expand Up @@ -4,17 +4,19 @@
*/ */


var express = require('../../'); var express = require('../../');
var favicon = require('static-favicon');
var cookie-parser = require('cookie-parser');

This comment has been minimized.

Copy link
@carchrae

carchrae Mar 21, 2014

cutnpaste fail - var cookie-parser => var cookieParser



var app = module.exports = express(); var app = module.exports = express();


// ignore GET /favicon.ico // ignore GET /favicon.ico
app.use(express.favicon()); app.use(favicon());


// pass a secret to cookieParser() for signed cookies // pass a secret to cookieParser() for signed cookies
app.use(express.cookieParser('manny is cool')); app.use(cookieParser('manny is cool'));


// add req.session cookie support // add req.session cookie support
app.use(express.cookieSession()); app.use(cookieSession());


// do something with the session // do something with the session
app.use(count); app.use(count);
Expand All @@ -29,4 +31,4 @@ function count(req, res) {
if (!module.parent) { if (!module.parent) {
app.listen(3000); app.listen(3000);
console.log('Express server listening on port 3000'); console.log('Express server listening on port 3000');
} }
18 changes: 11 additions & 7 deletions examples/cookies/app.js
Expand Up @@ -4,28 +4,32 @@
*/ */


var express = require('../../') var express = require('../../')
, app = module.exports = express(); , app = module.exports = express()
, favicon = require('static-favicon')
, logger = require('morgan')
, cookieParser = require('cookie-parser')
, bodyParser = require('body-parser')




// add favicon() before logger() so // add favicon() before logger() so
// GET /favicon.ico requests are not // GET /favicon.ico requests are not
// logged, because this middleware // logged, because this middleware
// reponds to /favicon.ico and does not // reponds to /favicon.ico and does not
// call next() // call next()
app.use(express.favicon()); app.use(favicon());


// custom log format // custom log format
if ('test' != process.env.NODE_ENV) if ('test' != process.env.NODE_ENV)
app.use(express.logger(':method :url')); app.use(logger(':method :url'));


// parses request cookies, populating // parses request cookies, populating
// req.cookies and req.signedCookies // req.cookies and req.signedCookies
// when the secret is passed, used // when the secret is passed, used
// for signing the cookies. // for signing the cookies.
app.use(express.cookieParser('my secret here')); app.use(cookieParser('my secret here'));


// parses json, x-www-form-urlencoded, and multipart/form-data // parses json, x-www-form-urlencoded, and multipart/form-data
app.use(express.bodyParser()); app.use(bodyParser());


app.get('/', function(req, res){ app.get('/', function(req, res){
if (req.cookies.remember) { if (req.cookies.remember) {
Expand All @@ -51,4 +55,4 @@ app.post('/', function(req, res){
if (!module.parent){ if (!module.parent){
app.listen(3000); app.listen(3000);
console.log('Express started on port 3000'); console.log('Express started on port 3000');
} }
6 changes: 4 additions & 2 deletions examples/cors/index.js
Expand Up @@ -3,7 +3,9 @@
*/ */


var express = require('../..') var express = require('../..')
, logger = require('morgan')
, app = express() , app = express()
, bodyParser = require('body-parser')
, api = express(); , api = express();


// app middleware // app middleware
Expand All @@ -12,8 +14,8 @@ app.use(express.static(__dirname + '/public'));


// api middleware // api middleware


api.use(express.logger('dev')); api.use(logger('dev'));
api.use(express.bodyParser()); api.use(bodyParser());


/** /**
* CORS support. * CORS support.
Expand Down
6 changes: 4 additions & 2 deletions examples/error-pages/index.js
Expand Up @@ -4,6 +4,8 @@


var express = require('../../') var express = require('../../')
, app = module.exports = express() , app = module.exports = express()
, logger = require('morgan')
, favicon = require('static-favicon')
, silent = 'test' == process.env.NODE_ENV; , silent = 'test' == process.env.NODE_ENV;


// general config // general config
Expand All @@ -21,9 +23,9 @@ if ('production' == app.settings.env) {
app.disable('verbose errors'); app.disable('verbose errors');
} }


app.use(express.favicon()); app.use(favicon());


silent || app.use(express.logger('dev')); silent || app.use(logger('dev'));


// Routes // Routes


Expand Down
3 changes: 2 additions & 1 deletion examples/error/index.js
Expand Up @@ -4,10 +4,11 @@
*/ */


var express = require('../../') var express = require('../../')
, logger = require('morgan')
, app = module.exports = express() , app = module.exports = express()
, test = app.get('env') == 'test'; , test = app.get('env') == 'test';


if (!test) app.use(express.logger('dev')); if (!test) app.use(logger('dev'));


// error handling middleware have an arity of 4 // error handling middleware have an arity of 4
// instead of the typical (req, res, next), // instead of the typical (req, res, next),
Expand Down
5 changes: 3 additions & 2 deletions examples/expose-data-to-client/index.js
@@ -1,5 +1,6 @@


var express = require('../..') var express = require('../..')
, logger = require('morgan')
, app = express(); , app = express();


app.set('view engine', 'jade'); app.set('view engine', 'jade');
Expand All @@ -23,7 +24,7 @@ User.prototype.toJSON = function(){
} }
}; };


app.use(express.logger('dev')); app.use(logger('dev'));


// earlier on expose an object // earlier on expose an object
// that we can tack properties on. // that we can tack properties on.
Expand Down Expand Up @@ -57,4 +58,4 @@ app.get('/user', function(req, res){
}); });


app.listen(3000); app.listen(3000);
console.log('app listening on port 3000'); console.log('app listening on port 3000');
15 changes: 8 additions & 7 deletions examples/mvc/index.js
@@ -1,4 +1,8 @@
var express = require('../..'); var express = require('../..');
var logger = require('morgan');
var session = require('express-session');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');


var app = module.exports = express(); var app = module.exports = express();


Expand All @@ -25,20 +29,17 @@ app.response.message = function(msg){
}; };


// log // log
if (!module.parent) app.use(express.logger('dev')); if (!module.parent) app.use(logger('dev'));


// serve static files // serve static files
app.use(express.static(__dirname + '/public')); app.use(express.static(__dirname + '/public'));


// session support // session support
app.use(express.cookieParser('some secret here')); app.use(cookieParser('some secret here'));
app.use(express.session()); app.use(session());


// parse request bodies (req.body) // parse request bodies (req.body)
app.use(express.bodyParser()); app.use(bodyParser());

// support _method (PUT in forms etc)
app.use(express.methodOverride());


// expose the "messages" local variable when views are rendered // expose the "messages" local variable when views are rendered
app.use(function(req, res, next){ app.use(function(req, res, next){
Expand Down
10 changes: 6 additions & 4 deletions examples/route-separation/index.js
Expand Up @@ -5,6 +5,9 @@


var express = require('../..') var express = require('../..')
, app = express() , app = express()
, logger = require('morgan')
, cookieParser = require('cookie-parser')
, bodyParser = require('body-parser')
, site = require('./site') , site = require('./site')
, post = require('./post') , post = require('./post')
, user = require('./user'); , user = require('./user');
Expand All @@ -13,10 +16,9 @@ var express = require('../..')


app.set('view engine', 'jade'); app.set('view engine', 'jade');
app.set('views', __dirname + '/views'); app.set('views', __dirname + '/views');
app.use(express.logger('dev')); app.use(logger('dev'));
app.use(express.cookieParser()); app.use(cookieParser());
app.use(express.bodyParser()); app.use(bodyParser());
app.use(express.methodOverride());
app.use(express.static(__dirname + '/public')); app.use(express.static(__dirname + '/public'));


// General // General
Expand Down
2 changes: 0 additions & 2 deletions examples/session/index.js
Expand Up @@ -7,8 +7,6 @@ var express = require('../..');


var app = express(); var app = express();


app.use(express.logger('dev'));

// Required by session() middleware // Required by session() middleware
// pass the secret for signed cookies // pass the secret for signed cookies
// (required by session()) // (required by session())
Expand Down
5 changes: 3 additions & 2 deletions examples/static-files/index.js
@@ -1,9 +1,10 @@


var express = require('../..'); var express = require('../..');
var logger = require('morgan');
var app = express(); var app = express();


// log requests // log requests
app.use(express.logger('dev')); app.use(logger('dev'));


// express on its own has no notion // express on its own has no notion
// of a "file". The express.static() // of a "file". The express.static()
Expand Down Expand Up @@ -41,4 +42,4 @@ console.log('listening on port 3000');
console.log('try:'); console.log('try:');
console.log(' GET /hello.txt'); console.log(' GET /hello.txt');
console.log(' GET /js/app.js'); console.log(' GET /js/app.js');
console.log(' GET /css/style.css'); console.log(' GET /css/style.css');
3 changes: 2 additions & 1 deletion examples/vhost/index.js
Expand Up @@ -3,6 +3,7 @@
*/ */


var express = require('../..'); var express = require('../..');
var logger = require('morgan');


/* /*
edit /etc/hosts: edit /etc/hosts:
Expand All @@ -16,7 +17,7 @@ edit /etc/hosts:


var main = express(); var main = express();


main.use(express.logger('dev')); main.use(logger('dev'));


main.get('/', function(req, res){ main.get('/', function(req, res){
res.send('Hello from main app!') res.send('Hello from main app!')
Expand Down
5 changes: 3 additions & 2 deletions lib/application.js
Expand Up @@ -6,7 +6,8 @@ var mixin = require('utils-merge')
, escapeHtml = require('escape-html') , escapeHtml = require('escape-html')
, Router = require('./router') , Router = require('./router')
, methods = require('methods') , methods = require('methods')
, middleware = require('./middleware') , middleware = require('./middleware/init')
, query = require('./middleware/query')
, debug = require('debug')('express:application') , debug = require('debug')('express:application')
, View = require('./view') , View = require('./view')
, http = require('http'); , http = require('http');
Expand Down Expand Up @@ -98,7 +99,7 @@ app.lazyrouter = function() {
strict: this.enabled('strict routing') strict: this.enabled('strict routing')
}); });


this._router.use(middleware.query()); this._router.use(query());
this._router.use(middleware.init(this)); this._router.use(middleware.init(this));
} }
}; };
Expand Down
26 changes: 8 additions & 18 deletions lib/express.js
Expand Up @@ -4,8 +4,7 @@


var EventEmitter = require('events').EventEmitter; var EventEmitter = require('events').EventEmitter;


var connect = require('connect') var merge = require('merge-descriptors')
, merge = require('merge-descriptors')
, mixin = require('utils-merge') , mixin = require('utils-merge')


var proto = require('./application') var proto = require('./application')
Expand All @@ -14,18 +13,15 @@ var proto = require('./application')
, req = require('./request') , req = require('./request')
, res = require('./response') , res = require('./response')


// monkey patch ServerResponse methods
require('./patch')

/** /**
* Expose `createApplication()`. * Expose `createApplication()`.
*/ */


exports = module.exports = createApplication; exports = module.exports = createApplication;


/**
* Expose mime.
*/

exports.mime = connect.mime;

/** /**
* Create an express application. * Create an express application.
* *
Expand All @@ -47,13 +43,6 @@ function createApplication() {
return app; return app;
} }


/**
* Expose connect.middleware as express.*
* for example `express.logger` etc.
*/

merge(exports, connect.middleware);

/** /**
* Expose the prototypes. * Expose the prototypes.
*/ */
Expand All @@ -69,7 +58,8 @@ exports.response = res;
exports.Route = Route; exports.Route = Route;
exports.Router = Router; exports.Router = Router;


// Error handler title /**

* Expose middleware
exports.errorHandler.title = 'Express'; */


exports.static = require('./middleware/static');

0 comments on commit 1396e08

Please sign in to comment.