Получить 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));
Другие вопросы по тегам