Menu
CoddyTech

Configuração

Parte da seção APIs REST do Journey de Node.js da Coddy. Lição 23 de 25.

No seu laptop, o servidor escuta na porta 3000. Um serviço de hospedagem o inicia com node server.js e escolhe a porta por conta própria, passando-a no ambiente como PORT. O host também chama uma rota como GET /health de vez em quando e reinicia o servidor quando ele para de responder.

// MAX_UPLOAD_MB=5 node server.js
const maxUpload = Number(process.env.MAX_UPLOAD_MB ?? 2);
const shopName = process.env.SHOP_NAME ?? 'My Shop';

Todo valor em process.env é uma string, e '5' + 1 é '51'; portanto, converta números com Number. Leia as configurações em um único arquivo, config.js, e importe-as em todos os outros lugares, para que nenhum outro código acesse process.env.

challenge icon

Desafio

Fácil

Em um serviço de hospedagem, o host escolhe a porta e passa as configurações para o servidor no ambiente. Leia suas configurações do ambiente em um só lugar e adicione uma rota que o host possa chamar para verificar se o servidor está ativo.

  1. Em config.js, leia port da variável de ambiente PORT e pageSize de PAGE_SIZE. Ambos chegam como texto, então converta-os em números. Quando uma variável estiver ausente, mantenha os valores atuais: 3000 e 10.
  2. Em server.js, importe config. Inicie o servidor em config.port e imprima a porta que ele usa. Com PORT=8080, o Console exibe exatamente:
    Task tracker API on port 8080
  3. Em routes/tasks.js, importe config também. Na rota de lista, uma solicitação sem ?limit= usa config.pageSize em vez de 10. Um ?limit= na solicitação ainda tem prioridade.
  4. Em server.js, adicione GET /health, fora do roteador de tarefas. Ela retorna o status 200 e exatamente:
    { "status": "ok" }

Esta lição é executada com PORT=8080 e PAGE_SIZE=2.

Experimente: pressione Executar, e o Console exibirá Task tracker API on port 8080. GET /api/v1/tasks retorna 2 tarefas com "total": 3 e "pages": 2. GET /api/v1/tasks?limit=3 retorna as 3. GET /health retorna { "status": "ok" }.

Experimente você mesmo

// As configurações que mudam entre seu laptop e um servidor.
// Leia cada uma de process.env, mantendo estes valores como padrão.
export const config = {
    port: 3000,
    pageSize: 10,
};
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de APIs REST

Pratique por conta própria: Playground de Express