Migrer d'Express 3.X vers 4.X

Express ne dépend plus de Connect. Ce qui a pour conséquence que la plupart des middlewares autrefois nativement inclus doivent désormais être installés via npm. C'est le cas par exemple de bodyParser. Il faudra penser à faire un :

npm install body-parser  

puis dans votre code :

var bodyParser = require("body-parser");  

Cela permet aux middlewares d'avoir leur propre cycle de vie au niveau des mises à jour et autres corrections de bugs.

Il en est de même pour cookie-parser, serve-favicon, serve, express-session. Voir les middlewares concernés.

Retiré d'Express 4

app.configure() n'existe plus.

app.configure('development', function() {  
   // 
});

,par exemple, devient :

var env = process.env.NODE_ENV || 'development';  
if ('development' == env) {  
   // 
}

Il n'y aura donc plus :

app.use(app.router);  

Les middlewares qui étaient jusqu'à présent ajoutés à app.configure() sont désormais exécutés dans leur ordre d'ajout.

Router est la nouvelle API dédiée aux routes. Un router sera donc préférablement un module dans son propre fichier. Ainsi, pour gérer la route "people/*", un module dédié pourra être créé dans routes/people.js :

var people = express.Router();

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

people.get('/', function(req, res, next) {  
});

module.exports.people = people;  

Ou bien directement depuis le code principal de votre application Express (server.js par exemple):

app.route('/people')  
    .get(function (req, res) {
        //
    })

    .post(function (req, res) {
        //
    })

Voir la documentation sur router.

Il y a d'autres changements, mais ceux listés précédemment vous impacteront assurémment.

Si vous souhaitez continuer à utiliser Express 3.x.x pour telle ou telle raison, pensez à préciser la version :

npm install express@3.x.x  

Nouveautés d'Express 4