Я прочитал некоторый код, который использует пакет dotenv для создания конфигураций. Когда я читаю файл, содержащий код PostgreSQL для пула, код выглядит так:
const pg = require('pg')
const { Pool } = pg
// This pool was created without completing the pool connection configuration.
const pool = new Pool()
Однако я вижу, что эта конфигурация пула записана в файле .env.
#POOL CONFIGURATIONS
PGUSER=username
PGPASSWORD=password
PGHOST=localhost
PGDATABASE=databasename
PGPORT=5432
и файл .env вызывается один раз в основном файле:
// main file
require('dotenv').config()
const express = require('express')
// below is the server
Почему пул создается без передачи каких-либо объектов конфигурации в качестве аргументов? Как это работает в фоновом режиме? Я до сих пор не могу понять это ясно.
Я пытался найти это поведение, но пока не нашел.
Когда вы бежите
require('dotenv').config()
который включает все в вашем .env
файле process.env.*
.
Например, вы говорите PGUSER=username
, так что теперь process.env.PGUSER === "username"
pg.Pool
кажется, что по умолчанию используются эти переменные среды