Обнаружение среды: node.js или браузер

Я разрабатываю JS-приложение, которое должно работать как на стороне клиента, так и на стороне сервера (в Javascript в браузере и в Node.js), и я хотел бы иметь возможность повторно использовать части кода, которые используется для обеих сторон.

Я узнал, чтоwindow была переменная, доступная только в браузерах, иglobal в узле, так что я могу определить, в какой среде выполняется код (при условии, что ни один скрипт не объявляетwindow переменная)

Это две проблемы.

Как я должен определить, в каком браузере работает код. Например, этот код в порядке. (Этот код встроенный, что означает, что он окружен каким-то глобальным кодом, повторно используемым для обеих сред)

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

Как я могу использовать глобальные переменные для обеих сред? Сейчас я делаю следующее, но это действительно не правильно.

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

Ответы на вопрос(4)

Ваш ответ на вопрос