2012-11-13 11 views
17

Jak uzyskać dostęp do zmiennych ustawionymi przy express na app.set() dla npJak uzyskać dostęp do zmiennych ustawionymi przy app.set (js) w express


app.set('view engine','jade'); 
app.set('jsDirectory',/js/'); 
 

z prowadnicy, rozumiem, że można uzyskać dostęp za pomocą samo app.get(<key>) , ale jest to wyjście z console.log(app.get('view engine')).

 
{ router: 
    { app: 
     { stack: [Object], 
     domain: null, 
     _events: [Object], 
     _maxListeners: 10, 
     _connections: 0, 
     connections: [Getter/Setter], 
     allowHalfOpen: true, 
     _handle: null, 
     httpAllowHalfOpen: false, 
     cache: {}, 
     settings: [Object], 
     redirects: {}, 
     isCallbacks: {}, 
     _locals: [Object], 
     dynamicViewHelpers: {}, 
     errorHandlers: [], 
     route: '/', 
     routes: [Circular], 
     router: [Getter], 
     root: 'C:\\Users\\Shahal\\Works\\App', 
     models: {}, 
     extensions: {}, 
     disconnectSchemas: [Function: disconnectSchemas], 
     passport: [Object] }, 
    routes: {}, 
    params: {}, 
    _params: [], 
    middleware: [Function] } } 
+1

Brzmi to może być uruchomiony ekspresowe 2.x? Dokumentacja na expressjs.com jest dokumentacją dla ekspresowego 3.x. –

Odpowiedz

21

stają się one dostępne za pośrednictwem Ustawien obiektu:

app.set('oneSetting', 'one'); 
app.set('twoSetting', 'two'); 
app.set('view engine','jade'); 

console.log(app.settings.oneSetting); 
console.log(app.settings.twoSetting); 
console.log(app.settings['view engine']); 
16

wiem, że to 2 lat, ale wciąż jest pierwszym ogniwem, które pojawia się w Google, więc myślałem, że to może być właściwy.

Można również ustawić zmienną jak ten

 app.set('port', 3000); 

A później się go

 app.get('port'); 

wolę takie podejście, ponieważ jest krótsza i bardziej proste. Jest to również sposób, w jaki używają w Express 4.x documentation.

app.get(name) 
    Returns the value of name app setting, where name is one of strings in the app settings table. 
+1

Być może czegoś mi brakuje, ale "port" nie jest wymieniony w [tablicy ustawień aplikacji] (http://expressjs.com/en/api.html#app.settings.table), więc jak to działa? – KnewB

+0

@KnewB Jeśli nie ma go wcześniej, express utworzy nowe i przypisze wartość. – NERDYLIZARD

-1
app.set('view engine','hbs') 
**All are correct:** 
app.get('view engine') 
app.locals.settings['view engine'] 
app.settings['view engine'] 
Powiązane problemy