Not able to solve Express Middleware issue

My first piece of code below:

var express = require('express');

var app = express.createServer(express.logger());

app.get('/', function(request, response){
    response.send('Hello World 2');
});

var port = process.env.PORT || 5000;
app.listen(port, function(){
    console.log("Listening on " + port);
});

Threw up the error: "Most middleware (like logger) is no longer bundled with Express and must be installed separately"

So I looked at StackOverflow, did npm install morgan, and changed my code to:

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

var app = express.createServer(logger());

app.get('/', function(request, response){
    response.send('Hello World 2');
});

var port = process.env.PORT || 5000;
app.listen(port, function(){
    console.log("Listening on " + port);
});

Now I get this error:

var app = express.createServer(logger());
                  ^
TypeError: Object function createApplication() {
  var app = function(req, res, next) {
    app.handle(req, res, next);
  };

  mixin(app, proto);
  mixin(app, EventEmitter.prototype);

  app.request = { __proto__: req, app: app };
  app.response = { __proto__: res, app: app };
  app.init();
  return app;
} has no method 'createServer'

You should create app with express(). Afterwards, you can setup any middleware (like morgan in this case) with app.use:

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

var app = express();

app.use(logger());

...

app.use() documentation: http://expressjs.com/4x/api.html#app.use. (Linking to Express 4.x documentation as not explicit what Express version you're running).

There is an exact same example like the one I wrote above in Morgan's README in GitHub.

That is because createServer method has been removed from express.

use

app = express();
app.use(logger())

instead of

app = express.createServer(logger())

Many things got changed from express 3.0 to 4.0. You should have a look here