Este é um artigo muito rápido onde vou falar sobre uma necessidade que tive ao desenvolver um web app, basicamente a app apresentava um comportamento diferente para cada subdomínio, logo precisava identificar os subdomínios do domínio pela qual a aplicação era servida.
No client-side
var subdominio = window.location.hostname.split(‘.’)[0];Acima, acedi ao objecto global ```window.location```, o mesmo retorna informações sobre a localização do documento ou página que foi carregada, como a porta, hostname ou domínio, e o caminho ou rota. Ex:

A partir daqui podíamos usar expressões regulares para obter a primeira palavra antes do ponto a contar da esquerda para direita, mas as string em Javascript têm um chamado split(), o mesmo separa a string usando um separador e retorna um array contendo cada uma das pequenas strings obtidas. Sendo que um domínio é constituído por nomes e uma extensão, e os mesmos são separados por pontos (.), então iremos definir da seguinte forma:
var getArray = getHostname.split(‘.’)Desse jeito temos um array, e como o subdomínio é o item mais à esquerda logo fica com primeiro elemento do array com index 0.
var getSubDominio = getArray[0];Uma vez obtendo o valor na variável, podemos avançar com as condições pretendidas ou simplement fazer o print nalgum lado da aplicação. Ex:
if (getSubDominio === ‘store’) {
console.log(Você está no subdomínio ${getSubdominio});
}No server-side
No lado do servidor o processo é tão simples quanto no cliente. Usando ExpressJS podemos obter o subdomínio atravéz do objecto request.headers, o mesmo retorna um conjunto de propriedades, incluindo a propriedade host, tal como no lado do cliente.
Exemplo em uma aplicação Express:
const express = require(‘express’);const app = express();// Rotas
app.get(‘/’, (request, response) => {
// Obter o subdomínio
let getSubdominio = request.headers.host.split(‘.’); // Enviar a resposta
response.send(`Você está no subdomínio ${getSubdominio}`);
});
