Usando app.configure en express

121

Encontré un código donde configuraron Express sin usar app.configurey me preguntaba, ¿cuál es la diferencia entre usar app.configuresin un especificador de entorno y no usarlo?

En otras palabras, ¿cuál es la diferencia entre esto?

var app = require(express);

app.configure(function(){
    app.set('port', process.env.PORT || config.port);
    app.use(express.logger('dev'));  /* 'default', 'short', 'tiny', 'dev' */
    app.use(express.bodyParser());
    app.use(express.static(path.join(__dirname, 'site')));
}

y esto:

var app = require(express);

app.set('port', process.env.PORT || config.port);
app.use(express.logger('dev'));  /* 'default', 'short', 'tiny', 'dev' */
app.use(express.bodyParser());
app.use(express.static(path.join(__dirname, 'site')));

Gracias.

JayC
fuente
18
AFAIK nada. app.configuretuvo que ser utilizado en versiones express anteriores pero no ahora.
pedro_sland
gracias, esta pregunta sola me ayudó a resolver mi problema. Que lindo es eso? :)
Non Plus Ultra
dentro de requirela expressdebe estar adentro quotes' .
Pramesh Bajracharya

Respuestas:

123

Es opcional y permanece por razones heredadas, según el documento. En su ejemplo, los dos códigos no tienen ninguna diferencia. http://expressjs.com/api.html#app.configure

Actualización 2015:

@IlanFrumer señala que app.configure se elimina en Express 4.x. Si siguió algunos tutoriales obsoletos y se preguntó por qué no funcionó, debe eliminarlos app.configure(function(){ ... }. Me gusta esto:

var express = require('express');
var app = express();

app.use(...);
app.use(...);

app.get('/', function (req, res) {
    ...
});
Jason Leung
fuente
59
¡Tenga en cuenta que app.configureestá completamente eliminado de la versión 4.0! github.com/visionmedia/express/issues/936
Ilan Frumer
2
Cada vez que use una versión de Express que no haya usado antes, es una buena idea buscar un documento sobre la migración a la nueva versión github.com/visionmedia/express/wiki/Migrating-from-3.x-to-4 .x
Ryan Ore