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.
Desafio
FácilEm 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.
- Em
config.js, leiaportda variável de ambientePORTepageSizedePAGE_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. - Em
server.js, importeconfig. Inicie o servidor emconfig.porte imprima a porta que ele usa. ComPORT=8080, o Console exibe exatamente:Task tracker API on port 8080 - Em
routes/tasks.js, importeconfigtambém. Na rota de lista, uma solicitação sem?limit=usaconfig.pageSizeem vez de 10. Um?limit=na solicitação ainda tem prioridade. - Em
server.js, adicioneGET /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,
};
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
1Recursos e verbos
Recursos e URLsCriando com POST4Navegadores, versões e configuração
O que é uma origemPermitindo outra origemCORSUma página que chama a APIPratique por conta própria: Playground de Express