2016-10-15 1 views
2

Sagen wir in Loopback-Middleware sind, wieZugriff auf Loopback-Konfigurationsdaten von Middleware

app.use(function(req,res,next){ 

    // I am not sure what key to use here in the getter... 
    const config = app.get('?'); 

}); 

ich die gesamte Konfiguration zugreifen möchten, die Loopback verwendet wird.

Ich habe versucht:

const config = app.get('config'); 
const config = app.get('env'); 
const config = app.get('datasources'); 

nichts gibt mir ganz das, was ich will.

Interessanterweise gibt mir:

console.log(app.get('restApiRoot')); 
=> '/api' 

so ist das ein Hinweis auf, was los ist, aber ich will das übergeordnete Objekt erhalten (s) für die oben genannten Daten.

Wie können wir auf die Konfiguration zugreifen, die Loopback geladen hat? Die Konfiguration variiert natürlich nach Umgebungsvariablen usw.

Ich möchte protokollieren, welche Datei datasources.x.js geladen wurde und welche Datei config.x.js geladen wurde, und alle anderen Informationen zur Serverkonfiguration, die ich erfassen kann.

Haben eine Menge Probleme herauszufinden, wie dies zu tun ist.

Dies scheint die gleiche Frage, die ich habe zu sein: https://github.com/strongloop/loopback/issues/1526

aber sie in die Leere zeigen Sie mir, dass Google Groups ist und ich dort durchsucht und nicht das, was die Antwort auf diese Frage finden konnten.

Antwort

2

Dieses Verhalten wird von Express übernommen.

Die gesamte Konfiguration wird im app.settings Objekt gespeichert, wobei app.get(key) und app.set(key,value) nur als Getter/Setter fungieren.

console.log(app.settings); tun (in server/server.js zum Beispiel) auf einem frischen Loopback kehrt die Installation folgende:

{ 'x-powered-by': true, 
    etag: 'weak', 
    'etag fn': [Function: wetag], 
    env: 'development', 
    'query parser': 'extended', 
    'query parser fn': [Function: parseExtendedQueryString], 
    'subdomain offset': 2, 
    'trust proxy': false, 
    'trust proxy fn': [Function: trustNone], 
    view: [Function: View], 
    views: 'C:\\Users\\*******\\Documents\\GitHub\\lbtest\\views', 
    'jsonp callback name': 'callback', 
    host: '0.0.0.0', 
    port: 3000, 
    restApiRoot: '/api', 
    remoting: 
    { context: { enableHttpContext: false }, 
    rest: { normalizeHttpPath: false, xml: false }, 
    json: { strict: false, limit: '100kb' }, 
    urlencoded: { extended: true, limit: '100kb' }, 
    cors: false, 
    errorHandler: { disableStackTrace: false } }, 
    legacyExplorer: false, 
    'loopback-component-explorer': { mountPath: '/explorer' }, 
    url: 'http://localhost:3000/' } 
+0

ja, aber diese Dateien werden in den Speicher auf dem Server beim Booten geladen - Ich möchte, dass für den Zugriff statt die Dateien erneut lesen. Außerdem wird Loopback auswählen, welche Dateien basierend auf NODE_ENV usw. geladen werden sollen - zu Debugging-Zwecken möchte ich die Konfigurationsdaten protokollieren, aber Loopback möchte entscheiden, welche Dateien geladen werden, nicht ich. –

+0

Ok, ich verstehe deine Frage jetzt besser. Ich habe meine Antwort entsprechend aktualisiert. – Overdrivr

+0

danke, also ist es nur "app.get ('settings')"? –

Verwandte Themen