Я использую превосходную библиотеку pg-promise
в приложении Next. js для взаимодействия с базой данных Postgres, развернутой в AWS. В частности, я использую функцию маршрутизации API, в которой папки внутри /pages/api
сопоставляются с соответствующими конечными точками. Это значительно упростило мой код и позволило мне удалить пользовательский файл server.js
. Проблема в том, что pg-promise
выдает это предупреждение:
WARNING: Creating a duplicate database object for the same connection.
Автор рассмотрел это раньше , но, несмотря на следование совету, предупреждение сохраняется.
Я инициализирую соединение с базой данных только один раз, в database.js
:
const pgp = require('pg-promise')();
const connection = { ... };
const db = pgp(connection);
module.exports = db;
И затем передаю его моим API в pages/api
, в данном случае users.js
:
import db from ‘../database.js;
export default async function handler(req, res) {
try {
const users = await db.any('SELECT * FROM table);
res.json(users)
} catch (error) {
res.status(error.status || 500).end(error.message)
}
}
Данные в конечном итоге попадают в getInitialProps
вызов.
Что вызывает предупреждение? Есть ли шаблон, который я пропускаю, или недостаток дизайна в моей обработке объекта подключения? Я экспериментировал с различными конфигами и промежуточным программным обеспечением, но предупреждение остается.