Usando app.configure no express

121

Eu encontrei um código onde eles configuram o Express sem usar app.configuree eu queria saber, qual é a diferença entre usar app.configuresem um especificador de ambiente e não usá-lo?

Em outras palavras, qual é a diferença entre isso:

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')));
}

e isto:

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')));

Obrigado.

JayC
fonte
18
AFAIK nada. app.configureteve que ser usado em versões expressas mais antigas, mas não agora.
Pedro_sland 5/09
obrigado, apenas esta questão me ajudou a resolver meu problema. Quão legal é isso? :)
Non Plus Ultra
dentro requiredo expressdeve estar dentro quotes' .
Pramesh Bajracharya

Respostas:

123

É opcional e permanece por motivos legados, de acordo com o documento. No seu exemplo, os dois códigos não têm nenhuma diferença. http://expressjs.com/api.html#app.configure

Atualização 2015:

@IlanFrumer ressalta que app.configure foi removido no Express 4.x. Se você seguiu alguns tutoriais desatualizados e se perguntou por que não funcionou, remova-o app.configure(function(){ ... }. Como isso:

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

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

app.get('/', function (req, res) {
    ...
});
Jason Leung
fonte
59
Esteja ciente de que app.configurefoi completamente removido da versão 4.0! github.com/visionmedia/express/issues/936
Ilan Frumer
2
Sempre que você usa uma versão do Express que não usou antes, é uma boa ideia verificar um documento sobre a migração para a nova versão github.com/visionmedia/express/wiki/Migrating-from-3.x-to-4 .x
Ryan Ore