Использование app.configure в экспрессе

121

Я нашел код, в котором они настраивают Express без использования, app.configureи мне было интересно, в чем разница между использованием app.configureбез спецификатора среды и без его использования?

Другими словами, в чем разница между этим:

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

и это:

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

Спасибо.

JayC
источник
18
Насколько я знаю, ничего. app.configureдолжен был использоваться в старых экспресс-версиях, но не сейчас.
pedro_sland 05
спасибо, только этот вопрос помог мне решить мою проблему. Как это хорошо? :)
Non Plus Ultra
внутри должен быть . requireexpressquotes'
Pramesh Bajracharya

Ответы:

123

Согласно документу, это необязательно и остается по причине устаревания. В вашем примере две части кода вообще не имеют разницы. http://expressjs.com/api.html#app.configure

Обновление 2015:

@IlanFrumer указывает, что app.configure удален в Express 4.x. Если вы следовали устаревшим руководствам и задаетесь вопросом, почему они не работают, вам следует удалить app.configure(function(){ ... }. Как это:

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

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

app.get('/', function (req, res) {
    ...
});
Джейсон Люнг
источник
59
Имейте в виду, что app.configureполностью удалена из версии 4.0! github.com/visionmedia/express/issues/936
Илан Фрумер
2
Каждый раз, когда вы используете версию Express, которую раньше не использовали, рекомендуется проверить наличие документации по переходу на новую версию github.com/visionmedia/express/wiki/Migrating-from-3.x-to-4 .x
Райан Оре