Получить pgClient из postgraphile
Я использую генератор GraphQL API Graphile в качестве промежуточного программного обеспечения на сервере Express.
Я хотел бы создать пользовательскую конечную точку http (не graphql), которая делает необработанный запрос sql к базе данных postgres. Есть ли какой-нибудь способ получить pgPool / pgQuery из промежуточного программного обеспечения постграф?
В основном мне нужно что-то вроде этого:
app.use(postgraphile(pgConnectionString, pgSchemas, pgOptions));
app.get("/foo", (req, res) => {
// get a pg query / pg client from the postgraphile middleware
// make some query
const result = await pgQuery.query(
"SELECT ...."
);
// do something with result
});
Кто-нибудь сделал что-то подобное?
Или было бы лучше с другой стороны, то есть создать pgPool, который вводится в postgraphile?
Ура!
1 ответ
Решение
Я решил это, введя pgPool в postgraphile
промежуточное программное обеспечение. И использовать pgPool для запроса базы данных.
// ...
const pool = new Pool({
connectionString: pgConnectionString,
});
pool.on("error", (err, client) => {
console.error("Unexpected error on idle client", err);
});
app.use(postgraphile(pool, pgSchemas, pgOptions));