Detecção de ambiente: node.js ou navegador
Estou desenvolvendo um aplicativo JS que precisa trabalhar tanto no lado do cliente quanto no lado do servidor (em Javascript em um navegador e em Node.js), e gostaria de poder reutilizar as partes do código que são usado para ambos os lados.
Eu descobri quewindow
era uma variável acessível apenas em navegadores eglobal
no nó, para que eu possa detectar em qual ambiente o código está sendo executado (assumindo que nenhum script declarawindow
variável)
Eles são dois problemas.
Como devo detectar em qual navegador o código está sendo executado? Por exemplo, este código está OK? (Este código é inline, o que significa que é rodeado por algum código global, reutilizado para ambos os ambientes)
if window?
totalPath= "../examples/#{path}"
else
totalPath= "../../examples/#{path}"
Como posso usar variáveis globais para os dois ambientes? Agora, estou fazendo o seguinte, mas isso não parece certo.
if window?
window.DocUtils = {}
window.docX = []
window.docXData= []
else
global.DocUtils= {}
global.docX = []
global.docXData = []