Umgebungserkennung: node.js oder Browser
Ich entwickle eine JS-App, die sowohl auf der Client-Seite als auch auf der Server-Seite funktionieren muss (in Javascript in einem Browser und in Node.js), und ich möchte die Teile des Codes wiederverwenden können, die vorhanden sind für beide Seiten verwendet.
Ich habe das herausgefundenwindow
war eine Variable, auf die nur über Browser zugegriffen werden kann, undglobal
in node, damit ich erkennen kann, in welcher Umgebung der Code ausgeführt wird (vorausgesetzt, dass kein Skript das deklariert)window
Variable)
Das sind zwei Probleme.
Wie soll ich feststellen, in welchem Browser der Code läuft? Ist dieser Code beispielsweise OK? (Dieser Code ist inline, was bedeutet, dass er von einem globalen Code umgeben ist, der für beide Umgebungen wiederverwendet wird.)
if window?
totalPath= "../examples/#{path}"
else
totalPath= "../../examples/#{path}"
Wie kann ich globale Variablen für beide Umgebungen verwenden? Jetzt mache ich Folgendes, aber das fühlt sich wirklich nicht richtig an.
if window?
window.DocUtils = {}
window.docX = []
window.docXData= []
else
global.DocUtils= {}
global.docX = []
global.docXData = []