Я многому научился, наблюдая за своими соединениями с БД, когда я совершал вызовы из моего API.
Когда вы делаете свой первый вызов с помощью pg.pool, соединение с БД будет установлено. После того как ваш запрос завершится, соединение переводится в состояние ожидания, если выполняется другая команда pg.pool, она будет использовать это незанятое соединение. Соединение будет закрыто через 10 секунд бездействия (вы можете настроить это).
Вы также можете установить максимальное количество соединений (по умолчанию 10). Таким образом, если вы выполните 10 запросов одновременно, они все откроют соединение и запустятся. Их соединения останутся бездействующими после завершения. Если вы запустите еще 10 одновременно, они снова будут использовать эти соединения.
, если вы хотите принудительно установить только 1 соединение, которое никогда не закрывается (не говоря о том, что вы хотите это сделать), вы устанавливаете время простоя на 0 и максимум 1 соединение. Затем, если вы запустите 10 запросов одновременно, они будут выстроены в линию и будут запускаться по одному за раз.
const pool = new pg.Pool({
user: 'postgres',
host: 'localhost',
database: 'database',
password: 'password',
port: 5000,
idleTimeoutMillis: 0,
max: 1,
});
Эта страница очень полезна, хотя я ее не понимал, пока не посмотрел соединение с базой данных. как мой API работал.
https://node-postgres.com/api/pool
Примечание: приведенный выше код должен быть в своем собственном файле js, и все соединения должны ссылаться на него. Я полагаю, что если вы создадите новый pg.Pools, они откроют свои собственные соединения, которые могут не соответствовать вашим ожиданиям.