ใช้ 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')));

ขอบคุณ


18
AFAIK ไม่มีอะไร app.configureต้องใช้ใน Express เวอร์ชันเก่า แต่ไม่ใช่ตอนนี้
pedro_sland

ขอบคุณคำถามนี้เพียงอย่างเดียวช่วยฉันแก้ปัญหาของฉันได้ มันดีแค่ไหน? :)
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
Ilan Frumer

2
เมื่อใดก็ตามที่คุณใช้ Express เวอร์ชันที่คุณไม่เคยใช้มาก่อนคุณควรตรวจสอบเอกสารเกี่ยวกับการย้ายข้อมูลไปยังเวอร์ชันใหม่github.com/visionmedia/express/wiki/Migrating-from-3.x-to-4 .x
Ryan Ore
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.