2016-09-21 2 views
0

Also ich kenne die Methode app.set() ist das Setzen von Wert für einen Namen. Daher kann app.get() den Wert anhand des Namens abrufen. aber wenn ich 'view engine' auf 'ejs' setze, wo ist app.get ('view engine')? wenn nicht, wie dosiert die app.set ('view engine', 'ejs')?Express: Wie die app.set ('view engine', 'ejs') innerlich ausgeführt?

Vielen Dank für das Beantworten dieser Assistentenfrage.

+0

wie etwa Config Objekt zu haben, die NConf erfolgt über, und dann überall zugänglich? – num8er

Antwort

0

Es funktioniert wie Sie es erwarten:

expressjs view engine

Wie funktioniert es?

prüft dies: https://github.com/expressjs/express/blob/master/lib/application.js#L336

Von Zeile: 336

/** 
* Assign `setting` to `val`, or return `setting`'s value. 
* 
* app.set('foo', 'bar'); 
* app.get('foo'); 
* // => "bar" 
* 
* Mounted servers inherit their parent server's settings. 
* 
* @param {String} setting 
* @param {*} [val] 
* @return {Server} for chaining 
* @public 
*/ 

app.set = function set(setting, val) { 
    if (arguments.length === 1) { 
    // app.get(setting) 
    return this.settings[setting]; 
    } 

    debug('set "%s" to %o', setting, val); 

    // set value 
    this.settings[setting] = val; 

    // trigger matched settings 
    switch (setting) { 
    case 'etag': 
     this.set('etag fn', compileETag(val)); 
     break; 
    case 'query parser': 
     this.set('query parser fn', compileQueryParser(val)); 
     break; 
    case 'trust proxy': 
     this.set('trust proxy fn', compileTrust(val)); 

     // trust proxy inherit back-compat 
     Object.defineProperty(this.settings, trustProxyDefaultSymbol, { 
     configurable: true, 
     value: false 
     }); 

     break; 
    } 

    return this; 
}; 
+1

danke für den Quellcode und das Bild. – suoyong

Verwandte Themen