Wykrywanie środowiska: node.js lub przeglądarka

Opracowuję aplikację JS, która musi działać zarówno po stronie klienta, jak i po stronie serwera (w Javascript w przeglądarce i Node.js), i chciałbym móc ponownie wykorzystać części kodu, które są używane dla obu stron.

Dowiedziałem się tegowindow była zmienną dostępną tylko w przeglądarkach iglobal w węźle, więc mogę wykryć, w którym środowisku kod jest wykonywany (zakładając, że żaden skrypt nie deklarujewindow zmienna)

Są to dwa problemy.

Jak powinienem wykryć, w której przeglądarce kod działa. Na przykład, czy ten kod jest OK. (Ten kod jest wbudowany, co oznacza, że ​​jest otoczony przez jakiś globalny kod, ponownie używany dla obu środowisk)

if window?
    totalPath= "../examples/#{path}"
else
    totalPath= "../../examples/#{path}"

Jak mogę używać zmiennych globalnych dla obu środowisk? Teraz robię co następuje, ale to naprawdę nie jest właściwe.

if window?
    window.DocUtils = {}
    window.docX = []
    window.docXData= []
else
    global.DocUtils= {}
    global.docX = []
    global.docXData = []

questionAnswers(4)

yourAnswerToTheQuestion