在Express中使用app.configure


121

我发现了一些代码,他们在不使用Express的情况下设置了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')));

谢谢。


18
AFAIK没事。app.configure必须在较早的Express版本中使用,但现在不可以使用。
pedro_sland 2013年

谢谢,仅此一个问题就帮助我解决了我的问题。那有多好?:)
Non Plus Ultra

里面requireexpress应该是quotes'
Pramesh Bajracharya

Answers:


123

根据文档,它是可选的,并且出于遗留原因保留。在您的示例中,这两段代码完全没有区别。 http://expressjs.com/api.html#app.configure

2015年更新:

@IlanFrumer指出在Express 4.x中删除了app.configure。如果您遵循了一些过时的教程,并且想知道为什么它不起作用,则应该删除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
Ilan Frumer

2
每当您使用从未使用过的Express版本之前,最好先检查一下有关迁移到新版本的文档github.com/visionmedia/express/wiki/Migrating-from-3.x-to-4 .x
Ryan Ore
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.