Detección de entorno: node.js o navegador

Estoy desarrollando una aplicación JS que necesita funcionar tanto en el lado del cliente como en el servidor (en Javascript en un navegador y en Node.js), y me gustaría poder reutilizar las partes del código que están Utilizado para ambos lados.

He descubierto quewindow era una variable solo accesible en los navegadores, yglobal en el nodo, así puedo detectar en qué entorno se está ejecutando el código (asumiendo que ningún script declara elwindow variable)

Son dos problemas.

¿Cómo debo detectar en qué navegador se está ejecutando el código? Por ejemplo, es este código OK. (Este código está en línea, lo que significa que está rodeado por algún código global, reutilizado para ambos entornos)

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

¿Cómo puedo usar variables globales para ambos entornos? Ahora, estoy haciendo lo siguiente, pero esto realmente no se siente bien.

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

Respuestas a la pregunta(4)

Su respuesta a la pregunta