Sử dụng app.configure trong express


121

Tôi đã tìm thấy một số mã nơi họ thiết lập Express mà không sử dụng app.configurevà tôi đã tự hỏi, sự khác biệt giữa việc sử dụng app.configuremà không có trình chỉ định môi trường và không sử dụng nó là gì?

Nói cách khác, sự khác biệt giữa điều này là gì:

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

và điều này:

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

Cảm ơn.


18
AFAIK không có gì. app.configuređã được sử dụng trong các phiên bản express cũ hơn nhưng không phải bây giờ.
pedro_sland

cảm ơn, câu hỏi này một mình đã giúp tôi giải quyết vấn đề của tôi. Làm thế nào tốt là điều đó? :)
Non Plus Ultra

bên trong requirecác expressphải ở trong quotes' .
Pramesh Bajracharya

Câu trả lời:


123

Nó là tùy chọn và vẫn còn vì lý do kế thừa, theo tài liệu. Trong ví dụ của bạn, hai đoạn mã không có sự khác biệt nào cả. http://expressjs.com/api.html#app.configure

Cập nhật năm 2015:

@IlanFrumer chỉ ra rằng app.configure bị loại bỏ trong Express 4.x. Nếu bạn đã làm theo một số hướng dẫn lỗi thời và tự hỏi tại sao nó không hoạt động, Bạn nên xóa app.configure(function(){ ... }. Như thế này:

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

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

app.get('/', function (req, res) {
    ...
});

59
Hãy lưu ý rằng app.configurenó đã bị loại bỏ hoàn toàn khỏi phiên bản 4.0! github.com/visionmedia/express/issues/936
Ilan Frumer

2
Bất cứ khi nào bạn sử dụng phiên bản Express mà bạn chưa sử dụng trước đó, bạn nên kiểm tra tài liệu khi chuyển sang phiên bản mới github.com/visionmedia/express/wiki/Migrating-from-3.x-to-4 .x
Ryan Ore
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.