The generated NodeJS Express application doesnt have "listen"?

When running express, the generated app.js is the following: (at the date of this post)

    var express = require('express');
    var path = require('path');
    var favicon = require('static-favicon');
    var logger = require('morgan');
    var cookieParser = require('cookie-parser');
    var bodyParser = require('body-parser');

    var routes = require('./routes/index');
    var users = require('./routes/users');

    var app = express();

    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'jade');

    app.use(favicon());
    app.use(logger('dev'));
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded());
    app.use(cookieParser());
    app.use(express.static(path.join(__dirname, 'public')));

    app.use('/', routes);
    app.use('/users', users);

    app.use(function(req, res, next) {
        ...
    });

    if (app.get('env') === 'development') {
        ...
    }

    app.use(function(err, req, res, next) {
        ...
    });

    module.exports = app;

For simplicity I removed comments.

My question is really simple:
I've seen a lot nodeJS examples in websites, blogs, and docs, where they use one of the followings:

 require('http').createServer(app).listen(3000);

or

 app.listen(3000);

If I execute my generated express app (npm start), it runs. I can navigate to localhost:3000 with a browser and it is being served. So... how relevant is to use listen(port)?

Im asking this because I like to have full control of things.
Also, some examples of modules use listen, eg. module Sequelize

Article: "Usage with Express.JS",
link: http://sequelizejs.com/articles/express,

app.js
------

    db
      .sequelize
      .sync({ force: true })
      .complete(function(err) {
        if (err) {
          throw err[0]
        } else {
          http.createServer(app).listen(app.get('port'), function(){
            console.log('Express server listening on port ' + app.get('port'))
          })
        }
      })

This makes me think that I should sync before starting listening.
If I dont use listen, and let it listen automagically (as the generated code does), will I get troubles because of syncing and listening at the same time?

If you look at the package.json file you'll probably find its running /bin/www or some such startup script. That will have the "missing" listen statement.