我正在使用Next.js应用程序中出色的pg-promise
库与部署在AWS上的Postgres数据库进行交互。具体来说,我使用的是API路由功能,其中/pages/api
中的文件夹映射到相应的端点。这极大地简化了我的代码,并允许我删除自定义的server.js
文件。问题是pg-promise
引发此警告:
WARNING: Creating a duplicate database object for the same connection.
The author has addressed this before,但是尽管遵循了建议,但警告仍然存在。
我仅在database.js
中初始化一次数据库连接:
const pgp = require('pg-promise')();
const connection = { ... };
const db = pgp(connection);
module.exports = db;
然后将其传递到pages/api
中的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
调用。
什么引起警告?在处理连接对象时是否存在我缺少的模式或设计缺陷?我已经尝试过各种配置和中间件,但警告仍然存在。