Só deveria ser usado no navegador e mesmo assim com parcimônia, qualquer coisa além disso (salvo as raras exceções que confirmam a regra) é ignorancia ou estupidez!!!
O node.js é a pior coisa que aconteceu na última decáda, justamente por convencer um munte de gente que eles deveri usar JS no backend e não precisariam aprender qualquer putra coisa.
Por muito tempo tive 'raiva' do js de ser obrigado a usar uma linguagem tão ruim. E eu usei por muito tempo. Hoje não preciso mais, faço desenvolvimento web apenas por diversão, e percebi que o JS mudou muito daquela porcaria que eu era obrigado a usar. Ele é de fato é muito bom e prazeroso de usar, como linguagem de script, talvez seja a melhor, mas linguagem de script é para fazer scripts e não aplicações!!! Já escrevi um pouco da minha opinião sobre a linguagem aqui.
O maior problema do JS é que ele é tão "podereso" que deixa todo o tipo de erro acontecer de forma silenciosa e isso é muito perigoso, se existe um erro eu quero que minha aplicação "crashe" o quanto antes (de forma graciosa) e não que ela continue rodando com corportamento indefinido!!!