Korzystanie z app.configure w express

121

Znalazłem kod, w którym skonfigurowali Express bez użycia app.configurei zastanawiałem się, jaka jest różnica między używaniem app.configurebez specyfikatora środowiska a jego nieużywaniem?

Innymi słowy, jaka jest różnica między tym:

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

i to:

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

Dzięki.

JayC
źródło
18
AFAIK nic. app.configuremusiał być używany w starszych wersjach ekspresowych, ale nie teraz.
pedro_sland,
dzięki, samo to pytanie pomogło mi rozwiązać mój problem. Jakie to miłe? :)
Non Plus Ultra
wewnątrz powinien być . requireexpressquotes'
Pramesh Bajracharya

Odpowiedzi:

123

Jest to opcjonalne i pozostaje ze względu na dziedzictwo, zgodnie z dok. W twoim przykładzie dwa fragmenty kodów nie mają żadnej różnicy. http://expressjs.com/api.html#app.configure

Aktualizacja 2015:

@IlanFrumer wskazuje, że plik app.configure został usunięty w Express 4.x. Jeśli korzystałeś z przestarzałych samouczków i zastanawiałeś się, dlaczego to nie zadziałało, powinieneś usunąć app.configure(function(){ ... }. Lubię to:

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

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

app.get('/', function (req, res) {
    ...
});
Jason Leung
źródło
59
Należy pamiętać, że app.configurejest całkowicie usunięty z wersji 4.0! github.com/visionmedia/express/issues/936
Ilan Frumer
2
Za każdym razem, gdy używasz wersji Express, której wcześniej nie używałeś,
Ryan Ore