2016-07-19 5 views
0

Ich baue eine Website basierend auf https://github.com/Vheissu/aurelia-starter-node. Es wird eine Backend-Logik im/api-Bereich haben und es wird auch einen SPA-Bereich geben, der von Aurelia verwaltet wird. Ich möchte:So senden Sie eine Konfiguration von ExpressJS an Aurelia

  • Lese config in Express-App (https://www.npmjs.com/package/config) require('config')
  • Verwendung dieser Konfiguration auf dem Server (üblichen Sachen)
  • eine Teilmenge dieser Konfiguration auf dem Client verwenden (in der Aurelia mit app)

ich weiß über https://github.com/Vheissu/Aurelia-Configuration aber ich will nicht zwei Config-Sets von verschiedenen Bibliotheken behandelt halten, mit dem Umgang die Umwelt an zwei Stellen einstellen usw.

Frage: Gibt es einen sauberen Weg zu tun, wonach ich suche?

Meine Gedanken so weit:

  • Pass etwas Bootstrapping Logik Aurélia, aber ich irgendwelche Informationen über diese
  • hässliche Lösung nicht finden kann: Rendering die Config als globaler Variable in index.html (die eine, die die Master-Seite für den SPA ist) und es von Aurelia Code gelesen, mehr weniger wie How to pass data from ASP.NET WebForms to Aurelia Global Scope
+0

Meiner Meinung nach sollte Ihre Client-Seite von Server-Seite unabhängig sein. Also, Sie müssen 2 Config-Sets haben –

Antwort

0

I die Konfiguration im Server-Code hält beendet und nur den Client-Teil davon an dem Körper des Renderings Seite wie folgt:

Wenn aurelia Routen für meine Anwendung zu definieren:

let model = { 
    clientConfig: { 
     x: 123 
    } 
}; 
res.render('index.html', model); 

Und dann in der Ansicht (EJS Vorlagen):

<script> 
    var config = <%- JSON.stringify(clientConfig) %>; 
</script> 

Für mich fühlt sich viel sauberer als die Aufrechterhaltung der config in zwei Orten.

Verwandte Themen