I am getting following error while trying to add middleware to my application:
 throw new TypeError('Router.use() requires callback function');
MyMiddleware.js
module.exports = function(options) {
  var err = checkOptions(options);
  if(err) {
    throw err;
  }
  var middleware = function(req, res, next) {
      // do something here
  }
  return middleware;
}
This is how I am adding my middleware:
var MyMiddleware = require('./server/middlewares/MyMiddleware');
var middleware = MyMiddleware(config);
router.use('/path', middleware);
app.use('/', router);
I am using express 4.x version.
You define your module as a function, you have to call it.
var MyMiddleware = require('./server/middlewares/MyMiddleware')();