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}`);
});

Referências

- Window.location no MDN
- String.prototype.split() no MDN

Firmino Changani

Written by

Always working on myself improvement

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade