Variáveis de Ambiente em Node.js

As variáveis de ambiente em Node.js são variáveis de ambiente do sistema operacional que podem ser acessadas em um aplicativo Node.js por meio do objeto global process.env.

Para definir uma variável de ambiente em um sistema operacional Windows, você pode usar o seguinte comando:

set NOME_DA_VARIAVEL=valor

Para sistemas operacionais baseados em Unix, o comando é:

export NOME_DA_VARIAVEL=valor

Após definir uma variável de ambiente, ela pode ser acessada em um aplicativo Node.js usando process.env.NOME_DA_VARIAVEL. Por exemplo, se você definir uma variável de ambiente chamada PORT com o valor 3000, você pode acessá-la em seu aplicativo Node.js da seguinte maneira:

const port = process.env.PORT || 3000;

Este código define a constante port com o valor da variável de ambiente PORT, se ela existir, ou o valor padrão de 3000, se não existir.

As variáveis de ambiente são úteis para armazenar informações confidenciais, como chaves de API, senhas de banco de dados e outras informações que não devem ser armazenadas diretamente no código-fonte do aplicativo.

Zod

O Zod é uma biblioteca de validação de schema em JavaScript que pode ser usada para validar a configuração de variáveis de ambiente antes de serem usadas em um aplicativo Node.js. Ele pode ajudar a garantir que todas as variáveis de ambiente necessárias estejam definidas e que tenham os tipos e valores esperados. Além disso, o Zod pode fornecer mensagens de erro úteis se as variáveis de ambiente não forem configuradas corretamente, o que pode ajudar no processo de depuração.

Para usar o Zod com variáveis de ambiente, você pode definir um schema que descreva as variáveis de ambiente necessárias e seus tipos e valores esperados. Em seguida, você pode usar o Zod para validar o objeto process.env em relação a esse schema. Se houver algum erro de validação, o Zod lançará uma exceção com uma mensagem de erro detalhada.

Por exemplo, o seguinte código usa o Zod para validar as variáveis de ambiente PORT e DATABASE_URL:

const { string, number, env } = require("zod");

const envSchema = env
  .schema({
    PORT: number(),
    DATABASE_URL: string(),
  })
  .required();

const envVars = envSchema.validate(process.env);

Nesse exemplo, env.schema() define um schema que descreve as variáveis de ambiente necessárias e seus tipos e valores esperados. env.schema().required() indica que todas as variáveis de ambiente definidas no schema devem ser definidas no ambiente ou uma exceção será lançada.

O Zod é uma ferramenta útil para garantir que as variáveis de ambiente necessárias sejam definidas corretamente e que seus valores sejam do tipo correto. Ele pode ser usado em conjunto com outras bibliotecas, como o dotenv, para carregar variáveis de ambiente de um arquivo .env.